mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-03 21:42:09 +00:00
avcodec/mxpegdec: Fix memleaks upon init failure
Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
f3e645a796
commit
9de6688cc4
@ -2815,6 +2815,8 @@ the_end_no_picture:
|
||||
return buf_ptr - buf;
|
||||
}
|
||||
|
||||
/* mxpeg may call the following function (with a blank MJpegDecodeContext)
|
||||
* even without having called ff_mjpeg_decode_init(). */
|
||||
av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx)
|
||||
{
|
||||
MJpegDecodeContext *s = avctx->priv_data;
|
||||
|
@ -67,10 +67,8 @@ static av_cold int mxpeg_decode_init(AVCodecContext *avctx)
|
||||
|
||||
s->picture[0] = av_frame_alloc();
|
||||
s->picture[1] = av_frame_alloc();
|
||||
if (!s->picture[0] || !s->picture[1]) {
|
||||
mxpeg_decode_end(avctx);
|
||||
if (!s->picture[0] || !s->picture[1])
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
|
||||
s->jpg.picture_ptr = s->picture[0];
|
||||
return ff_mjpeg_decode_init(avctx);
|
||||
@ -351,5 +349,5 @@ AVCodec ff_mxpeg_decoder = {
|
||||
.decode = mxpeg_decode_frame,
|
||||
.capabilities = AV_CODEC_CAP_DR1,
|
||||
.max_lowres = 3,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user