[FFmpeg-devel] [PATCH] lavc/smvjpegdec: fix mem leak in case of init failure

Michael Niedermayer michaelni at gmx.at
Sun Nov 23 17:25:44 CET 2014


On Sat, Nov 22, 2014 at 11:26:04PM +0100, Lukasz Marek wrote:
> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> ---
>  libavcodec/smvjpegdec.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/smvjpegdec.c b/libavcodec/smvjpegdec.c
> index 69327cd..261a441 100644
> --- a/libavcodec/smvjpegdec.c
> +++ b/libavcodec/smvjpegdec.c
> @@ -89,8 +89,10 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx)
>          return AVERROR(ENOMEM);
>  
>      s->picture[1] = av_frame_alloc();
> -    if (!s->picture[1])
> +    if (!s->picture[1]) {
> +        av_frame_free(&s->picture[0]);
>          return AVERROR(ENOMEM);
> +    }
>  
>      s->jpg.picture_ptr      = s->picture[0];
>  
> @@ -120,6 +122,11 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx)
>      }
>      av_dict_free(&thread_opt);
>  
> +    if (ret < 0) {
> +        av_frame_free(&s->picture[0]);
> +        av_frame_free(&s->picture[1]);
> +        avcodec_free_context(&s->avctx);
> +    }
>      return ret;
>  }

LGTM, alternatively smvjpeg_decode_end() could probably be called on
error

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Asymptotically faster algorithms should always be preferred if you have
asymptotical amounts of data
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141123/838e2cc8/attachment.asc>


More information about the ffmpeg-devel mailing list