diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-01-31 13:32:10 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-01-31 13:32:10 -0800 |
commit | 21a9002fd13cecb0ad00e922e06e515ea35f2627 (patch) | |
tree | e754d81a1387944e2718956565ac974d1ff584f6 /exec_cmd.c | |
parent | 2ae236247374c7b78aaa892430162eb1eb6da606 (diff) | |
parent | 007ac544011213045e3905983b4350ffec8f41f7 (diff) | |
download | git-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.c | 14 |
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) |