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

Re: [PATCH] commit: fix memory leak in `prepare_index()`

From
Jeff King <peff@peff.net>
Date
Sep 20, 2017, 19:55 UTC
Message-ID
<20170920195525.3fx5oq7i4arjnun4@sigill.intra.peff.net>
In-Reply-To
<1505936846-2195-1-git-send-email-martin.agren@gmail.com>
On Wed, Sep 20, 2017 at 09:47:23PM +0200, Martin Ågren wrote:
> Release `pathspec` and the string list `partial`.
Makes sense.
> When we clear the string list, make sure we do not free the `util`
> pointers. That would result in double-freeing, since we set them up as
> `item->util = item` in `list_paths()`.

Also makes sense (and is kind of weird; it looks like we're just using it as a magic flag. But that's outside the scope of your patch).

> Initialize the string list early, so that we can always release it. That
> introduces some unnecessary overhead in various code paths, but means
> there is one and only one way out of the function. If we ever accumulate
> more things we need to free, it should be straightforward to do so.

The overhead is fine. It's just writing the struct entries, not allocating anything. I wondered if the pathspec needed a similar initialization (since you can't tell just from reading the context), but no, it's initialized as the first thing in the function.

> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
>  builtin/commit.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
Looks good to me. Thanks.
-Peff
Previous: Martin Ågren
Message 2 of 2 in “commit: fix memory leak in `prepare_index()`”
  1. commit: fix memory leak in `prepare_index()`Martin Ågren, Sep 20, 2017
  2. Jeff KingSep 20, 2017

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.