Browse Source

avcodec/mjpegdec: Fix memleak upon init failure

This affected all decoders that used ff_mjpeg_decode_init() as init
function; and it also affected decoders that open jpeg decoders via
ff_codec_open2_recursive() as well as MxPEG.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 4 years ago
parent
commit
f3e645a796
4 changed files with 6 additions and 6 deletions
  1. +1
    -1
      libavcodec/jpeglsdec.c
  2. +1
    -1
      libavcodec/mjpegbdec.c
  3. +2
    -2
      libavcodec/mjpegdec.c
  4. +2
    -2
      libavcodec/sp5xdec.c

+ 1
- 1
libavcodec/jpeglsdec.c View File

@@ -553,5 +553,5 @@ AVCodec ff_jpegls_decoder = {
.close = ff_mjpeg_decode_end,
.decode = ff_mjpeg_decode_frame,
.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
};

+ 1
- 1
libavcodec/mjpegbdec.c View File

@@ -163,5 +163,5 @@ AVCodec ff_mjpegb_decoder = {
.decode = mjpegb_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,
};

+ 2
- 2
libavcodec/mjpegdec.c View File

@@ -2888,7 +2888,7 @@ AVCodec ff_mjpeg_decoder = {
.max_lowres = 3,
.priv_class = &mjpegdec_class,
.profiles = NULL_IF_CONFIG_SMALL(ff_mjpeg_profiles),
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE |
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP |
FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
.hw_configs = (const AVCodecHWConfigInternal*[]) {
#if CONFIG_MJPEG_NVDEC_HWACCEL
@@ -2914,6 +2914,6 @@ AVCodec ff_thp_decoder = {
.flush = decode_flush,
.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,
};
#endif

+ 2
- 2
libavcodec/sp5xdec.c View File

@@ -106,7 +106,7 @@ AVCodec ff_sp5x_decoder = {
.decode = sp5x_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,
};
#endif
#if CONFIG_AMV_DECODER
@@ -121,6 +121,6 @@ AVCodec ff_amv_decoder = {
.decode = sp5x_decode_frame,
.max_lowres = 3,
.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
};
#endif

Loading…
Cancel
Save