Commit 47c5a305 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/pngdec: Alloc buffer after blend_op check in handle_p_frame_apng()

Avoids memleak on error
Fixes CID1322342
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 14573b9b
......@@ -969,10 +969,7 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
AVFrame *p)
{
size_t x, y;
uint8_t *buffer = av_malloc(s->image_linesize * s->height);
if (!buffer)
return AVERROR(ENOMEM);
uint8_t *buffer;
if (s->blend_op == APNG_BLEND_OP_OVER &&
avctx->pix_fmt != AV_PIX_FMT_RGBA &&
......@@ -983,6 +980,11 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
return AVERROR_PATCHWELCOME;
}
buffer = av_malloc(s->image_linesize * s->height);
if (!buffer)
return AVERROR(ENOMEM);
// Do the disposal operation specified by the last frame on the frame
if (s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) {
ff_thread_await_progress(&s->last_picture, INT_MAX, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment