[FFmpeg-cvslog] alac: do not return success if nothing was decoded

Anton Khirnov git at videolan.org
Sun Mar 19 18:38:43 EET 2017


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Aug 14 10:18:39 2016 +0200| [796dca027be09334d7bbf4f2ac1200e06bb054cb] | committer: Anton Khirnov

alac: do not return success if nothing was decoded

If we encounter an END element before anything is decoded, we would
return success even though the output frame has not been allocated,
which is invalid.

CC: libav-stable at libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=796dca027be09334d7bbf4f2ac1200e06bb054cb
---

 libavcodec/alac.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index 1f24e1b..0d2a7ca 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -447,6 +447,10 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
         av_log(avctx, AV_LOG_ERROR, "no end tag found. incomplete packet.\n");
         return AVERROR_INVALIDDATA;
     }
+    if (!alac->nb_samples) {
+        av_log(avctx, AV_LOG_ERROR, "No decodable data in the packet\n");
+        return AVERROR_INVALIDDATA;
+    }
 
     if (avpkt->size * 8 - get_bits_count(&alac->gb) > 8) {
         av_log(avctx, AV_LOG_ERROR, "Error : %d bits left\n",



More information about the ffmpeg-cvslog mailing list