[FFmpeg-cvslog] id3v2: skip broken tags with invalid size

Anton Khirnov git at videolan.org
Wed Mar 23 03:03:42 CET 2011


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Mar 22 10:35:35 2011 +0100| [c5f4c0fd5c791ba97eb266cc30ae2172c10feb20] | committer: Justin Ruggles

id3v2: skip broken tags with invalid size

fixes issue2649.

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

 libavformat/id3v2.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c
index 96f3e1c..4fecffe 100644
--- a/libavformat/id3v2.c
+++ b/libavformat/id3v2.c
@@ -237,11 +237,11 @@ static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t
             tag[3] = 0;
             tlen = avio_rb24(s->pb);
         }
-        len -= taghdrlen + tlen;
-
-        if (len < 0)
+        if (tlen < 0 || tlen > len - taghdrlen) {
+            av_log(s, AV_LOG_WARNING, "Invalid size in frame %s, skipping the rest of tag.\n", tag);
             break;
-
+        }
+        len -= taghdrlen + tlen;
         next = avio_tell(s->pb) + tlen;
 
         if (tflags & ID3v2_FLAG_DATALEN) {




More information about the ffmpeg-cvslog mailing list