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

Re: [PATCH v2 1/1] maintenance: fix two memory leaks

From
Derrick Stolee <stolee@gmail.com>
Date
May 11, 2021, 15:13 UTC
Message-ID
<01dccb51-cb2e-ea6f-a05c-d76bb7ed725f@gmail.com>
In-Reply-To
<20210510195909.621534-2-lenaic@lhuard.fr>
On 5/10/2021 3:59 PM, Lénaïc Huard wrote:
> Fixes two memory leaks when running `git maintenance start` or `git
> maintenance stop` in `update_background_schedule`:
Thanks for finding these leaks.
Show 36 quoted lines
> ---
>  builtin/gc.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/builtin/gc.c b/builtin/gc.c
> index ef7226d7bc..484fe983d3 100644
> --- a/builtin/gc.c
> +++ b/builtin/gc.c
> @@ -1924,6 +1924,7 @@ static int crontab_update_schedule(int run_maintenance, int fd, const char *cmd)
>  		else if (!in_old_region)
>  			fprintf(cron_in, "%s\n", line.buf);
>  	}
> +	strbuf_release(&line);
>  
>  	if (run_maintenance) {
>  		struct strbuf line_format = STRBUF_INIT;
> @@ -1986,8 +1987,10 @@ static int update_background_schedule(int enable)
>  		cmd = sep + 1;
>  	}
>  
> -	if (hold_lock_file_for_update(&lk, lock_path, LOCK_NO_DEREF) < 0)
> -		return error(_("another process is scheduling background maintenance"));
> +	if (hold_lock_file_for_update(&lk, lock_path, LOCK_NO_DEREF) < 0) {
> +		result = error(_("another process is scheduling background maintenance"));
> +		goto cleanup;
> +	}
>  
>  	if (!strcmp(scheduler, "launchctl"))
>  		result = launchctl_update_schedule(enable, get_lock_file_fd(&lk), cmd);
> @@ -1999,6 +2002,9 @@ static int update_background_schedule(int enable)
>  		die("unknown background scheduler: %s", scheduler);
>  
>  	rollback_lock_file(&lk);
> +
> +cleanup:
> +	free(lock_path);
And I agree that this version looks good. 

Thanks, -Stolee

Previous: Lénaïc HuardNext: Junio C Hamano
Message 7 of 9 in “maintenance: fix two memory leaks”
  1. maintenance: fix two memory leaksLénaïc Huard, May 9, 2021
  2. Junio C HamanoMay 10, 2021
  3. lilinchao@oschina.cnMay 10, 2021
  4. Junio C HamanoMay 10, 2021
  5. 0/1 maintenance: fix two memory leaksLénaïc Huard, May 10, 2021
  6. 1/1 maintenance: fix two memory leaksLénaïc Huard, May 10, 2021
  7. Derrick StoleeMay 11, 2021
  8. Junio C HamanoMay 11, 2021
  9. lilinchao@oschina.cnMay 10, 2021

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.