diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
index 98bec5cca45dbdfa4e994b6c35e3e33e89fc93b3..3645f43e2f20b270dc681cc91605196e81a002be 100644
--- a/libavcodec/qdm2.c
+++ b/libavcodec/qdm2.c
@@ -2008,8 +2008,10 @@ static int qdm2_decode_frame(AVCodecContext *avctx,
 {
     QDM2Context *s = avctx->priv_data;
 
-    if((buf == NULL) || (buf_size < s->checksum_size))
+    if(!buf)
         return 0;
+    if(buf_size < s->checksum_size)
+        return -1;
 
     *data_size = s->channels * s->frame_size * sizeof(int16_t);