mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
cafdec: free extradata before allocating it
This fixes a memleak if read_kuki_chunk is executed more than once. Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This commit is contained in:
parent
a3ede6b742
commit
cb7c4f73e5
@ -134,6 +134,7 @@ static int read_kuki_chunk(AVFormatContext *s, int64_t size)
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
av_freep(&st->codec->extradata);
|
||||||
if (ff_alloc_extradata(st->codec, ALAC_HEADER))
|
if (ff_alloc_extradata(st->codec, ALAC_HEADER))
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
@ -166,6 +167,7 @@ static int read_kuki_chunk(AVFormatContext *s, int64_t size)
|
|||||||
avio_skip(pb, size - ALAC_NEW_KUKI);
|
avio_skip(pb, size - ALAC_NEW_KUKI);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
av_freep(&st->codec->extradata);
|
||||||
if (ff_get_extradata(st->codec, pb, size) < 0)
|
if (ff_get_extradata(st->codec, pb, size) < 0)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user