mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 20:19:55 +00:00
avcodec/pngdec: Alloc buffer after blend_op check in handle_p_frame_apng()
Avoids memleak on error Fixes CID1322342 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
14573b9b7c
commit
47c5a3058e
@ -969,10 +969,7 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
|
|||||||
AVFrame *p)
|
AVFrame *p)
|
||||||
{
|
{
|
||||||
size_t x, y;
|
size_t x, y;
|
||||||
uint8_t *buffer = av_malloc(s->image_linesize * s->height);
|
uint8_t *buffer;
|
||||||
|
|
||||||
if (!buffer)
|
|
||||||
return AVERROR(ENOMEM);
|
|
||||||
|
|
||||||
if (s->blend_op == APNG_BLEND_OP_OVER &&
|
if (s->blend_op == APNG_BLEND_OP_OVER &&
|
||||||
avctx->pix_fmt != AV_PIX_FMT_RGBA &&
|
avctx->pix_fmt != AV_PIX_FMT_RGBA &&
|
||||||
@ -983,6 +980,11 @@ static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s,
|
|||||||
return AVERROR_PATCHWELCOME;
|
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
|
// Do the disposal operation specified by the last frame on the frame
|
||||||
if (s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) {
|
if (s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) {
|
||||||
ff_thread_await_progress(&s->last_picture, INT_MAX, 0);
|
ff_thread_await_progress(&s->last_picture, INT_MAX, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user