Browse Source

avcodec/pngdec: Fix memleak by postponing allocation

Fixes Coverity ticket #1322342.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 4 years ago
parent
commit
5edcdfc318
1 changed files with 3 additions and 5 deletions
  1. +3
    -5
      libavcodec/pngdec.c

+ 3
- 5
libavcodec/pngdec.c View File

@@ -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