diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2013-04-03 15:45:46 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2013-04-03 23:28:49 +0200 |
commit | 13cf445358a19d188a745e3d217297857021e406 (patch) | |
tree | 70cfb16ec90664a77a458b76a8b770736a2ff5e3 | |
parent | 83d5871cf100b4e08ea0e4f5f191e87702561bf3 (diff) | |
download | ffmpeg-13cf445358a19d188a745e3d217297857021e406.tar.gz |
Skip padding in an id3 tag in aiff files.
Fixes ticket #2430.
Reviewed-by: Matthieu Bouron
(cherry picked from commit db2d3a90825025b2f5da85792e1df33280c61391)
Conflicts:
libavformat/aiffdec.c
-rw-r--r-- | libavformat/aiffdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 41fe0d2994..f5c752005f 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -191,7 +191,7 @@ static int aiff_probe(AVProbeData *p) static int aiff_read_header(AVFormatContext *s) { int size, filesize; - int64_t offset = 0; + int64_t offset = 0, position; uint32_t tag; unsigned version = AIFF_C_VERSION1; AVIOContext *pb = s->pb; @@ -235,8 +235,11 @@ 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); 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); |