avcodec/vp6: return value check for av_mallocz

As the potential failure of the av_mallocz(), the 's->alpha_context'
could be NULL and be dereferenced later.
Therefore, it should be better to check it and deal with it if fails
in order to prevent memory leak, same as the av_frame_alloc() in
ff_vp56_init().

Fixes: 39a3894ad5 ("lavc/vp6: Implement "slice" threading for VP6A decode")
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
This commit is contained in:
Jiasheng Jiang 2022-02-07 11:44:53 +08:00 committed by Peter Ross
parent b6bb6b9f22
commit c4d63dbc94
1 changed files with 4 additions and 0 deletions

View File

@ -653,6 +653,10 @@ static av_cold int vp6_decode_init(AVCodecContext *avctx)
if (s->has_alpha) {
s->alpha_context = av_mallocz(sizeof(VP56Context));
if (!s->alpha_context) {
ff_vp56_free(avctx);
return AVERROR(ENOMEM);
}
ff_vp56_init_context(avctx, s->alpha_context,
s->flip == -1, s->has_alpha);
ff_vp6dsp_init(&s->alpha_context->vp56dsp);