[FFmpeg-devel] [PATCH] libavformat/http: Fix memory leak in get_cookies.

Richard Shaffer rshaffer at tunein.com
Tue Apr 17 23:29:12 EEST 2018


On Tue, Apr 17, 2018 at 1:04 PM, wm4 <nfxjfg at googlemail.com> wrote:

> On Tue, 17 Apr 2018 10:48:16 -0700
> Richard Shaffer <rshaffer at tunein.com> wrote:
>
> > On Fri, Apr 13, 2018 at 4:42 PM, <rshaffer at tunein.com> wrote:
> >
> > > From: Richard Shaffer <rshaffer at tunein.com>
> > >
> > > ---
> > >  libavformat/http.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/libavformat/http.c b/libavformat/http.c
> > > index 983034f083..b4a1919f24 100644
> > > --- a/libavformat/http.c
> > > +++ b/libavformat/http.c
> > > @@ -1103,6 +1103,7 @@ static int get_cookies(HTTPContext *s, char
> > > **cookies, const char *path,
> > >              snprintf(*cookies, str_size, "%s; %s=%s", tmp,
> > > cookie_entry->key, cookie_entry->value);
> > >              av_free(tmp);
> > >          }
> > > +        av_dict_free(&cookie_params);
> > >      }
> > >
> > >      av_free(set_cookies);
> > > --
> > > 2.15.1 (Apple Git-101)
> > >
> > > Would one of the maintainers mind looking at and applying this? It's
> a
> > one-line change to fix a memory leak.
>
> Not a maintainer, but the "official" maintainer hasn't cared about this
> code for a long time (despite being active FFmpeg contributor). Pushed.
>
> I think there are some more leaks of this allocation, though.
>

Yeah. Darn. I missed see the break statements inside the nested ifs. Those
are a rare case, since they're only executed if an allocation fails, but
they should still be handled. I'll send another patch for that. Maybe I can
refactor the while loop so that there aren't so many breaks or continues. I
did go over the rest of that loop, and I don't see any other cases where
the dictionary isn't freed.

Thanks for committing anyway. At least it fixes the most common code path.


> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list