avcodec/pngdec: Fix memleak by postponing allocation

Fixes Coverity ticket #1322342.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
pull/371/head
Andreas Rheinhardt 4 years ago
parent da12d600ea
commit 5edcdfc318
  1. 8
      libavcodec/pngdec.c

@ -1080,10 +1080,6 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
return AVERROR_PATCHWELCOME;
}
buffer = av_malloc_array(s->image_linesize, s->height);
if (!buffer)
return AVERROR(ENOMEM);
ff_thread_await_progress(&s->last_picture, INT_MAX, 0);
// need to reset a rectangle to background:
@ -1099,7 +1095,9 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
}
}
memcpy(buffer, s->last_picture.f->data[0], s->image_linesize * s->height);
buffer = av_memdup(s->last_picture.f->data[0], s->image_linesize * s->height);
if (!buffer)
return AVERROR(ENOMEM);
// Perform blending
if (s->blend_op == APNG_BLEND_OP_SOURCE) {

Loading…
Cancel
Save