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

Re: [PATCH 0/5] plugging some list-objects-filter leaks

From
Jeff King <peff@peff.net>
Date
Sep 11, 2022, 04:51 UTC
Message-ID
<Yx1pQKfmVZegmYzM@coredump.intra.peff.net>
In-Reply-To
<15688f6a-4757-e201-9106-663899e35fec@github.com>
On Fri, Sep 09, 2022 at 10:20:37AM -0400, Derrick Stolee wrote:
Show 10 quoted lines
> > Of course we can drop the passing flag, but I figured it would probably
> > be an easy fix. Famous last words. It turned into quite a rabbit hole of
> > actual leaks (albeit small and bounded per process) and some
> > questionable memory ownership semantics.
> 
> Reading the patches, you make good arguments about the various trade-
> offs in these sticky places. I agree with you in all cases, mostly
> because the alternatives would not be any better unless we did a _lot_
> of work to rewrite a lot more code than these patches. Even then, the
> benefit is unclear.

Thanks for looking them over. I wondered if I was just being lazy and/or cowardly in not teaching callers to initialize the filter struct specifically (rather than memset to zero).

So of course I started looking at it, and of course it was way more complicated than you'd imagine. So I have no regrets in drawing the line where I did in this leak-plugging series.

But now that I did do it, it turned out to reveal other oddities in the filter code! So I'll post that as a separate series on top. Even if we don't go all the way with the cleanup, we should at least fix the oddities.

> > Here's the series I came up with. I'm cc-ing Stolee as the last person
> > unfortunate enough to have touched this area. :)
> 
> Lucky me!

It's the gift that keeps on giving. Guess what you're about to get cc'd on. ;)

-Peff
Previous: Derrick Stolee
Message 8 of 8 in “plugging some list-objects-filter leaks”
  1. 0/5 plugging some list-objects-filter leaksJeff King, Sep 8, 2022
  2. 1/5 list_objects_filter_copy(): deep-copy sparse_oid_name fieldJeff King, Sep 8, 2022
  3. 2/5 transport: deep-copy object-filter struct for fetch-packJeff King, Sep 8, 2022
  4. 3/5 transport: free filter options in disconnect_git()Jeff King, Sep 8, 2022
  5. 4/5 list_objects_filter_options: plug leak of filter_spec stringsJeff King, Sep 8, 2022
  6. 5/5 prepare_repo_settings(): plug leak of config valuesJeff King, Sep 8, 2022
  7. Derrick StoleeSep 9, 2022
  8. Jeff KingSep 11, 2022

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.