Thread (151 messages) 151 messages, 6 authors, 2017-05-11

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help