diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-02-11 22:56:41 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-02-13 13:24:45 +0100 |
commit | 63231fa8d30f41045658d6c382b00fe1ebe18d05 (patch) | |
tree | de82a83aaf15100f399af5a106ff2d19eb3d6d7a /libavcodec | |
parent | bbf6183e11e1d4514d87edc61d5c3f1e2951ffa2 (diff) |
avcodec/pngdec: fix possible race condition with APNG decoding
Fixes #9017
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/pngdec.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 395b86bbe7..61642b7cbe 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -711,13 +711,13 @@ static int decode_idat_chunk(AVCodecContext *avctx, PNGDecContext *s, s->bpp += byte_depth; } - if ((ret = ff_thread_get_buffer(avctx, &s->picture, AV_GET_BUFFER_FLAG_REF)) < 0) - return ret; if (avctx->codec_id == AV_CODEC_ID_APNG && s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) { ff_thread_release_buffer(avctx, &s->previous_picture); if ((ret = ff_thread_get_buffer(avctx, &s->previous_picture, AV_GET_BUFFER_FLAG_REF)) < 0) return ret; } + if ((ret = ff_thread_get_buffer(avctx, &s->picture, AV_GET_BUFFER_FLAG_REF)) < 0) + return ret; p->pict_type = AV_PICTURE_TYPE_I; p->key_frame = 1; p->interlaced_frame = !!s->interlace_type; |