[FFmpeg-devel] [PATCH v1 1/1] vaapi_hevc: Fix double-free issue.

Lin, Decai decai.lin at intel.com
Fri Mar 22 08:40:12 EET 2019



> -----Original Message-----
> From: Fu, Linjie
> Sent: 2019年3月21日 20:20
> To: FFmpeg development discussions and patches
> <ffmpeg-devel at ffmpeg.org>
> Cc: Yan, FengX <fengx.yan at intel.com>; Lin, Decai <decai.lin at intel.com>
> Subject: RE: [FFmpeg-devel] [PATCH v1 1/1] vaapi_hevc: Fix double-free
> issue.
> 
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> > Of Decai Lin
> > Sent: Thursday, March 21, 2019 17:30
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Yan, FengX <fengx.yan at intel.com>; Lin, Decai <decai.lin at intel.com>
> > Subject: [FFmpeg-devel] [PATCH v1 1/1] vaapi_hevc: Fix double-free issue.
> >
> > From: "Yan, FengX" <fengx.yan at intel.com>
> >
> > Signed-off-by: Yan, FengX <fengx.yan at intel.com>
> > Signed-off-by: Decai Lin <decai.lin at intel.com>
> > ---
> >  libavcodec/vaapi_hevc.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c index
> > 19aabcd..373ffc4 100644
> > --- a/libavcodec/vaapi_hevc.c
> > +++ b/libavcodec/vaapi_hevc.c
> > @@ -271,7 +271,7 @@ static int vaapi_hevc_end_frame(AVCodecContext
> > *avctx)
> >
> >      ret = ff_vaapi_decode_issue(avctx, &pic->pic);
> >      if (ret < 0)
> > -        goto fail;
> > +        return ret;
> >
> >      return 0;
> >  fail:
> 
> I believe this should match the behavior in vaapi_h264/mpeg4/.../vc1.c, and
> remove the redundant  ff_vaapi_decode_cancel in vaapi_hevc_end_frame().
> 
> --Linjie

Hello Linjie, there is little different between vaapi_hevc and other vaapi codecs. 
vaapi_hevc has an extra code block to handle slice buffer before ff_vaapi_decode_issue() , and if it's failed to handle, the buffers have to be destroyed separately.
So the calling of ff_vaapi_decode_cancel() here is a must for hevc. 



More information about the ffmpeg-devel mailing list