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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e2b2d6a172
commit
c9bb5d101c
@ -69,6 +69,7 @@ void git_set_argv_exec_path(const char *exec_path)
|
|||||||
const char *git_exec_path(void)
|
const char *git_exec_path(void)
|
||||||
{
|
{
|
||||||
const char *env;
|
const char *env;
|
||||||
|
static char *system_exec_path;
|
||||||
|
|
||||||
if (argv_exec_path)
|
if (argv_exec_path)
|
||||||
return argv_exec_path;
|
return argv_exec_path;
|
||||||
@ -78,7 +79,9 @@ const char *git_exec_path(void)
|
|||||||
return env;
|
return env;
|
||||||
}
|
}
|
||||||
|
|
||||||
return system_path(GIT_EXEC_PATH);
|
if (!system_exec_path)
|
||||||
|
system_exec_path = system_path(GIT_EXEC_PATH);
|
||||||
|
return system_exec_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_path(struct strbuf *out, const char *path)
|
static void add_path(struct strbuf *out, const char *path)
|
||||||
|
Loading…
Reference in New Issue
Block a user