Skip to content

Commit c9bb5d1

Browse files
dschogitster
authored andcommitted
git_exec_path: avoid Coverity warning about unfree()d result
Technically, it is correct that git_exec_path() returns a possibly malloc()ed string returned from system_path(), and it is sometimes not allocated. Cache the result in a static variable and make sure that we call system_path() only once, which plugs a potential leak. Signed-off-by: Johannes Schindelin <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent e2b2d6a commit c9bb5d1

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

exec_cmd.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ void git_set_argv_exec_path(const char *exec_path)
6969
const char *git_exec_path(void)
7070
{
7171
const char *env;
72+
static char *system_exec_path;
7273

7374
if (argv_exec_path)
7475
return argv_exec_path;
@@ -78,7 +79,9 @@ const char *git_exec_path(void)
7879
return env;
7980
}
8081

81-
return system_path(GIT_EXEC_PATH);
82+
if (!system_exec_path)
83+
system_exec_path = system_path(GIT_EXEC_PATH);
84+
return system_exec_path;
8285
}
8386

8487
static void add_path(struct strbuf *out, const char *path)

0 commit comments

Comments
 (0)