avcodec/qsvdec: Check av_image_get_buffer_size() for failure
Fixes: CID1477406 Improper use of negative value
Sponsored-by: Sovereign Tech Fund
Reviewed-by: "Xiang, Haihao" <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index ed0bfe4..a51ddac 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -379,9 +379,12 @@
q->frame_info = param->mfx.FrameInfo;
- if (!avctx->hw_frames_ctx)
- q->pool = av_buffer_pool_init(av_image_get_buffer_size(avctx->pix_fmt,
- FFALIGN(avctx->width, 128), FFALIGN(avctx->height, 64), 1), av_buffer_allocz);
+ if (!avctx->hw_frames_ctx) {
+ ret = av_image_get_buffer_size(avctx->pix_fmt, FFALIGN(avctx->width, 128), FFALIGN(avctx->height, 64), 1);
+ if (ret < 0)
+ return ret;
+ q->pool = av_buffer_pool_init(ret, av_buffer_allocz);
+ }
return 0;
}