[FFmpeg-devel] [PATCH 1/3] vaapi_encode: Initialize the pointer
Xiang, Haihao
haihao.xiang at intel.com
Tue May 8 05:35:46 EEST 2018
On Mon, 2018-05-07 at 21:46 +0100, Mark Thompson wrote:
> On 04/05/18 15:41, Haihao Xiang wrote:
> > Otherwise it might use unitialized last_pic in av_assert0(last_pic)
> >
> > Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
> > ---
> > libavcodec/vaapi_encode.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
> > index 36c85a3815..141e50c8ad 100644
> > --- a/libavcodec/vaapi_encode.c
> > +++ b/libavcodec/vaapi_encode.c
> > @@ -760,7 +760,7 @@ fail:
> > static int vaapi_encode_truncate_gop(AVCodecContext *avctx)
> > {
> > VAAPIEncodeContext *ctx = avctx->priv_data;
> > - VAAPIEncodePicture *pic, *last_pic, *next;
> > + VAAPIEncodePicture *pic, *last_pic = NULL, *next;
> >
> > // Find the last picture we actually have input for.
> > for (pic = ctx->pic_start; pic; pic = pic->next) {
> >
>
> How do you hit this? last_pic should always get set.
>
It was reported by some static analysis tools, but I agree with you that
last_pic should get set in the code path, however if we consider
vaapi_encode_truncate_gop() only, last_pic will be uninitialized if ctx-
>pic_start is non-NULL but ctx->pic_start->input_available is not set. How about
to add av_assert0(!ctx->pic_start || ctx->pic_start->input_available) before the
for () statement and remove av_assert0(last_pic)?
> - Mark
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list