[FFmpeg-cvslog] Skip padding in an id3 tag in aiff files.

Carl Eugen Hoyos git at videolan.org
Wed Apr 3 23:29:16 CEST 2013


ffmpeg | branch: release/1.1 | Carl Eugen Hoyos <cehoyos at ag.or.at> | Wed Apr  3 15:45:46 2013 +0200| [bb46240cbb5d8d3e0274d5dc879a45e1826d21ce] | committer: Carl Eugen Hoyos

Skip padding in an id3 tag in aiff files.

Fixes ticket #2430.

Reviewed-by: Matthieu Bouron
(cherry picked from commit db2d3a90825025b2f5da85792e1df33280c61391)

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

 libavformat/aiffdec.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 8d466fa..4a26298 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -192,7 +192,7 @@ static int aiff_probe(AVProbeData *p)
 static int aiff_read_header(AVFormatContext *s)
 {
     int ret, size, filesize;
-    int64_t offset = 0;
+    int64_t offset = 0, position;
     uint32_t tag;
     unsigned version = AIFF_C_VERSION1;
     AVIOContext *pb = s->pb;
@@ -236,6 +236,7 @@ static int aiff_read_header(AVFormatContext *s)
                 goto got_sound;
             break;
         case MKTAG('I', 'D', '3', ' '):
+            position = avio_tell(pb);
             ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
             if (id3v2_extra_meta)
                 if ((ret = ff_id3v2_parse_apic(s, &id3v2_extra_meta)) < 0) {
@@ -243,6 +244,8 @@ static int aiff_read_header(AVFormatContext *s)
                     return ret;
                 }
             ff_id3v2_free_extra_meta(&id3v2_extra_meta);
+            if (position + size > avio_tell(pb))
+                avio_skip(pb, position + size - avio_tell(pb));
             break;
         case MKTAG('F', 'V', 'E', 'R'):     /* Version chunk */
             version = avio_rb32(pb);



More information about the ffmpeg-cvslog mailing list