Module: libav
Branch: release/12
Commit: 71912349716978d60703b311ba75cbc783808f15

Author:    Anton Khirnov <an...@khirnov.net>
Committer: Anton Khirnov <an...@khirnov.net>
Date:      Sun Aug 14 10:18:39 2016 +0200

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-sta...@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
(cherry picked from commit 796dca027be09334d7bbf4f2ac1200e06bb054cb)
Signed-off-by: Anton Khirnov <an...@khirnov.net>

---

 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",

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to