[FFmpeg-cvslog] flacdec: fix buffer size checking in get_metadata_size()

Justin Ruggles git at videolan.org
Tue Sep 27 02:25:30 CEST 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Tue Sep 13 15:13:44 2011 -0400| [4c5e7b27d57dd2be777780e840eef9be63242158] | committer: Justin Ruggles

flacdec: fix buffer size checking in get_metadata_size()

Adds an additional check before reading the next block header and avoids a
potential integer overflow when checking the metadata size against the
remaining buffer size.

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

 libavcodec/flacdec.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
index f6d0abe..3eb117a 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -226,9 +226,11 @@ static int get_metadata_size(const uint8_t *buf, int buf_size)
 
     buf += 4;
     do {
+        if (buf_end - buf < 4)
+            return 0;
         ff_flac_parse_block_header(buf, &metadata_last, NULL, &metadata_size);
         buf += 4;
-        if (buf + metadata_size > buf_end) {
+        if (buf_end - buf < metadata_size) {
             /* need more data in order to read the complete header */
             return 0;
         }



More information about the ffmpeg-cvslog mailing list