[FFmpeg-devel] [PATCH v2] avfilter/vf_libvmaf: Check for av_frame_alloc failure

Limin Wang lance.lmwang at gmail.com
Wed Nov 27 12:20:33 EET 2019


On Wed, Nov 27, 2019 at 11:09:23AM +0100, Nikola Pajkovsky wrote:
> lance.lmwang at gmail.com writes:
> 
> > From: Limin Wang <lance.lmwang at gmail.com>
> >
> > Reviewed-by: Paul B Mahol <onemda at gmail.com>
> > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > ---
> > Add Reviewed-by:, pleae help push it
> >
> >  libavfilter/vf_libvmaf.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
> > index ed3a383..14c3216 100644
> > --- a/libavfilter/vf_libvmaf.c
> > +++ b/libavfilter/vf_libvmaf.c
> > @@ -235,6 +235,9 @@ static av_cold int init(AVFilterContext *ctx)
> >  
> >      s->gref = av_frame_alloc();
> >      s->gmain = av_frame_alloc();
> > +    if (!s->gref || !s->gmain)
> > +        return AVERROR(ENOMEM);
> > +
> 
> When av_frame_alloc() return allocated memory for s->gref and
> av_frame_alloc() fails for s->gmain, it will leak memory for s->gref.
> 
> Correct code is:
> 
>     s->gref = av_frame_alloc();
>     if (!s->gref)
>         return AVERROR(ENOMEM);
> 
>     s->gmain = av_frame_alloc();
>     if (!s->gmain)
>         return AVERROR(ENOMEM);

Thank for your review, I recall they'll be freed in uninit function, so
my patch looks simple.


> 
> -- 
> Nikola


More information about the ffmpeg-devel mailing list