From 5ef4fa87b319ea33dc87c459cbd714f355824218 Mon Sep 17 00:00:00 2001
From: Justin Ruggles <justin.ruggles@gmail.com>
Date: Wed, 4 Mar 2009 23:55:10 +0000
Subject: [PATCH] flacdec: Add a check for small buffer size.  This ensures
 reading as much of the frame header as possible without excluding the
 smallest possible FLAC frame.  It also fixes a false positive warning message
 that was being emitted at the end of decoding.

Originally committed as revision 17816 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/flacdec.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
index 61062b2a84a..ee845de115e 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -639,6 +639,11 @@ static int flac_decode_frame(AVCodecContext *avctx,
 
     init_get_bits(&s->gb, buf, buf_size*8);
 
+    /* check that there is at least the smallest decodable amount of data.
+       this amount corresponds to the smallest valid FLAC frame possible. */
+    if (buf_size < 24)
+        goto end;
+
     /* check for inline header */
     if (show_bits_long(&s->gb, 32) == MKBETAG('f','L','a','C')) {
         if (metadata_parse(s)) {
-- 
GitLab