Re: [PATCH 14/26] setup_bare_git_dir(): fix memory leak
From: Johannes Schindelin <hidden>
Date: 2017-04-27 22:57:19
Hi Hannes, On Thu, 27 Apr 2017, Johannes Sixt wrote:
Am 26.04.2017 um 22:20 schrieb Johannes Schindelin:quoted
Reported by Coverity. Signed-off-by: Johannes Schindelin <redacted> --- setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/setup.c b/setup.c index 0309c278218..0320a9ad14c 100644 --- a/setup.c +++ b/setup.c@@ -748,7 +748,7 @@ static const char *setup_bare_git_dir(struct strbuf*cwd, int offset, /* --work-tree is set without --git-dir; use discovered one */ if (getenv(GIT_WORK_TREE_ENVIRONMENT) || git_work_tree_cfg) { - const char *gitdir; + static const char *gitdir; gitdir = offset == cwd->len ? "." : xmemdupz(cwd->buf, offset); if (chdir(cwd->buf))Whoa! Look what values are assigned to the variable: Either a static string or allocated memory. I suspect that this does not fix a memory leak at all, but only shuts up Coverity. -- Hannes PS: stopping here as I'm running out of time.
Sorry, I meant to amend the commit message and forgot before sending the first time: setup_git_directory() (and consequently, setup_bare_git_dir()) can only be called once. Yes, this patch is here to shut up Coverity, as it cannot know that we are talking about a singleton here. Ciao, Dscho