diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 56338c0f9d..79b78533e3 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -191,7 +191,7 @@ static int aiff_probe(AVProbeData *p) /* aiff input */ static int aiff_read_header(AVFormatContext *s) { - int size, filesize; + int ret, size, filesize; int64_t offset = 0; uint32_t tag; unsigned version = AIFF_C_VERSION1; @@ -237,6 +237,11 @@ static int aiff_read_header(AVFormatContext *s) break; case MKTAG('I', 'D', '3', ' '): 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) { + ff_id3v2_free_extra_meta(&id3v2_extra_meta); + return ret; + } ff_id3v2_free_extra_meta(&id3v2_extra_meta); break; case MKTAG('F', 'V', 'E', 'R'): /* Version chunk */