[FFmpeg-devel] [PATCH, v2] lavc/qsvenc: Fix the memory leak for enc_ctrl.Payload

Fu, Linjie linjie.fu at intel.com
Wed May 22 08:49:55 EEST 2019


> -----Original Message-----
> From: Li, Zhong
> Sent: Monday, April 29, 2019 17:00
> To: FFmpeg development discussions and patches <ffmpeg-
> devel at ffmpeg.org>
> Cc: Fu, Linjie <linjie.fu at intel.com>
> Subject: RE: [FFmpeg-devel] [PATCH, v2] lavc/qsvenc: Fix the memory leak
> for enc_ctrl.Payload
> 
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On
> Behalf
> > Of Linjie Fu
> > Sent: Monday, April 15, 2019 9:23 PM
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Fu, Linjie <linjie.fu at intel.com>
> > Subject: [FFmpeg-devel] [PATCH, v2] lavc/qsvenc: Fix the memory leak for
> > enc_ctrl.Payload
> >
> > frame->enc_ctrl.Payload is malloced in get_free_frame, directly memset
> > the whole structure of enc_ctrl to zero will cause the memory leak for
> > enc_ctrl.Payload.
> >
> > frame->enc_ctrl as a structure will be malloc and init to zero by
> > frame->calling
> > frame = av_mallocz(sizeof(*frame)), so the memset is redundant and can
> be
> > removed.
> >
> > Can be reproduced by #7830.
> 
> Patch LGTM now, but I can't see strong relationship between this patch and
> tikect #7830.
> IMHO this is a quite common issue even if you use qsv transcoding pipeline?

Yes, it's not strongly related with the issue. Remove this would be fine.
Thanks.

> > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > ---
> >  libavcodec/qsvenc.c | 1 -
> >  1 file changed, 1 deletion(-)
> >
> > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index
> > 5aa020d47b..19953bd4ea 100644
> > --- a/libavcodec/qsvenc.c
> > +++ b/libavcodec/qsvenc.c
> > @@ -1254,7 +1254,6 @@ static int encode_frame(AVCodecContext *avctx,
> > QSVEncContext *q,
> >      if (qsv_frame) {
> >          surf = &qsv_frame->surface;
> >          enc_ctrl = &qsv_frame->enc_ctrl;
> > -        memset(enc_ctrl, 0, sizeof(mfxEncodeCtrl));
> >
> >          if (frame->pict_type == AV_PICTURE_TYPE_I) {
> >              enc_ctrl->FrameType = MFX_FRAMETYPE_I |
> > MFX_FRAMETYPE_REF;
> > --
> > 2.17.1



More information about the ffmpeg-devel mailing list