mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/audiotoolboxdec: always use a copy of the AVCodecContext extradata
Fixes memleaks introduced by 954e2b3d34
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
eea69a9f25
commit
7273e234de
|
@ -399,8 +399,13 @@ static av_cold int ffat_create_decoder(AVCodecContext *avctx, AVPacket *pkt)
|
|||
static av_cold int ffat_init_decoder(AVCodecContext *avctx)
|
||||
{
|
||||
ATDecodeContext *at = avctx->priv_data;
|
||||
at->extradata = avctx->extradata;
|
||||
at->extradata_size = avctx->extradata_size;
|
||||
if (avctx->extradata_size) {
|
||||
at->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||
if (!at->extradata)
|
||||
return AVERROR(ENOMEM);
|
||||
at->extradata_size = avctx->extradata_size;
|
||||
memcpy(at->extradata, avctx->extradata, avctx->extradata_size);
|
||||
}
|
||||
|
||||
if ((avctx->channels && avctx->sample_rate) || ffat_usable_extradata(avctx))
|
||||
return ffat_create_decoder(avctx, NULL);
|
||||
|
@ -599,6 +604,7 @@ static av_cold int ffat_close_decoder(AVCodecContext *avctx)
|
|||
av_packet_unref(&at->new_in_pkt);
|
||||
av_packet_unref(&at->in_pkt);
|
||||
av_free(at->decoded_data);
|
||||
av_free(at->extradata);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue