Re: [PATCH 07/26] http-backend: avoid memory leaks
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Apr 28, 2017, 09:40 UTC
- Message-ID
- <alpine.DEB.2.20.1704281117040.3480@virtualbox>
- In-Reply-To
- <xmqq4lxao0ds.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Wed, 26 Apr 2017, Junio C Hamano wrote:
Show 37 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>
> > Reported via Coverity.
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > ---
> > http-backend.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/http-backend.c b/http-backend.c
> > index eef0a361f4f..d12572fda10 100644
> > --- a/http-backend.c
> > +++ b/http-backend.c
> > @@ -681,8 +681,10 @@ int cmd_main(int argc, const char **argv)
> > if (!regexec(&re, dir, 1, out, 0)) {
> > size_t n;
> >
> > - if (strcmp(method, c->method))
> > + if (strcmp(method, c->method)) {
> > + free(dir);
> > return bad_request(&hdr, c);
> > + }
> >
> > cmd = c;
> > n = out[0].rm_eo - out[0].rm_so;
> > @@ -708,5 +710,7 @@ int cmd_main(int argc, const char **argv)
> > max_request_buffer);
> >
> > cmd->imp(&hdr, cmd_arg);
> > + free(dir);
> > + free(cmd_arg);
> > return 0;
> > }
>
> Hmph. I find a "leak" of a resource acquired inside the main
> function and not released when the main function leaves a lot less
> interesting than the other ones this series covers.Ah, I missed that this falls squarely into the "one-shot programs are allowed to be sloppy in their memory management, essentially using exit() as garbage collector" category.
Will drop, Dscho