aboutsummaryrefslogtreecommitdiff
path: root/exec_cmd.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-01-31 13:32:10 -0800
committerJunio C Hamano <gitster@pobox.com>2017-01-31 13:32:10 -0800
commit21a9002fd13cecb0ad00e922e06e515ea35f2627 (patch)
treee754d81a1387944e2718956565ac974d1ff584f6 /exec_cmd.c
parent2ae236247374c7b78aaa892430162eb1eb6da606 (diff)
parent007ac544011213045e3905983b4350ffec8f41f7 (diff)
downloadgit-21a9002fd13cecb0ad00e922e06e515ea35f2627.tar.gz
git-21a9002fd13cecb0ad00e922e06e515ea35f2627.tar.xz
Merge branch 'js/exec-path-coverity-workaround' into maint
Code cleanup. * js/exec-path-coverity-workaround: git_exec_path: do not return the result of getenv() git_exec_path: avoid Coverity warning about unfree()d result
Diffstat (limited to 'exec_cmd.c')
-rw-r--r--exec_cmd.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/exec_cmd.c b/exec_cmd.c
index 19ac2146d..fb94aeba9 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -64,17 +64,19 @@ void git_set_argv_exec_path(const char *exec_path)
/* Returns the highest-priority, location to look for git programs. */
const char *git_exec_path(void)
{
- const char *env;
+ static char *cached_exec_path;
if (argv_exec_path)
return argv_exec_path;
- env = getenv(EXEC_PATH_ENVIRONMENT);
- if (env && *env) {
- return env;
+ if (!cached_exec_path) {
+ const char *env = getenv(EXEC_PATH_ENVIRONMENT);
+ if (env && *env)
+ cached_exec_path = xstrdup(env);
+ else
+ cached_exec_path = system_path(GIT_EXEC_PATH);
}
-
- return system_path(GIT_EXEC_PATH);
+ return cached_exec_path;
}
static void add_path(struct strbuf *out, const char *path)