git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCHv4 3/4] bundle: don't leak an fd in case of early return

From
Jeff King <peff@peff.net>
Date
Apr 1, 2016, 17:15 UTC
Message-ID
<20160401171535.GB20345@sigill.intra.peff.net>
In-Reply-To
<xmqqzitdi7iq.fsf@gitster.mtv.corp.google.com>
On Fri, Apr 01, 2016 at 10:05:49AM -0700, Junio C Hamano wrote:
Show 15 quoted lines
> Stefan Beller <sbeller@google.com> writes:
> 
> > In successful operation `write_pack_data` will close the `bundle_fd`,
> > but when we exit early, we need to take care of the file descriptor
> > as well as the lock file ourselves. The lock file may be deleted at the
> > end of running the program, but we are in library code, so we should
> > not rely on that.
> >
> > Helped-by: Jeff King <peff@peff.net>
> > Signed-off-by: Stefan Beller <sbeller@google.com>
> > ---
> 
> Thanks.  I think this turned out to be the trickiest one to get
> right among the four and my reading of this round tells me that
> it addresses all the trickiness pointed out in the reviews.
You didn't see my response to the other patch yet. :)
> >  	/* write pack */
> >  	if (write_pack_data(bundle_fd, &revs))
> > -		return -1;
> > +		goto err;

This does still suffer from the double-close I mentioned earlier. I'm not sure if we want to address that or not.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 11 of 14 in “[PATCHv4 0/4] Some cleanups”
  1. Stefan BellerApr 1, 2016
  2. 1/4 notes: don't leak memory in git_config_get_notes_strategyStefan Beller, Apr 1, 2016
  3. Eric SunshineApr 1, 2016
  4. Junio C HamanoApr 1, 2016
  5. Junio C HamanoApr 1, 2016
  6. Jeff KingApr 1, 2016
  7. Eric SunshineApr 1, 2016
  8. 2/4 abbrev_sha1_in_line: don't leak memoryStefan Beller, Apr 1, 2016
  9. 3/4 bundle: don't leak an fd in case of early returnStefan Beller, Apr 1, 2016
  10. Junio C HamanoApr 1, 2016
  11. Jeff KingApr 1, 2016
  12. Junio C HamanoApr 1, 2016
  13. Jeff KingApr 1, 2016
  14. 4/4 credential-cache, send_request: close fd when doneStefan Beller, Apr 1, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.