diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index c3ae66effcc5ca3a4bc94941c0fdeb68633b989f..bced66f198288bbfe6a898f8e1971788873b6614 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -444,6 +444,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
     int decode_top_nibble_next = 0;
     int diff_channel;
 
+    if (!buf_size)
+        return 0;
+
     samples = data;
     src = buf;