X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=exec_cmd.c;h=5d6a1247b4a1955dffae2b52da064a6eb489d83b;hb=48fd688ab0ba7d41ff4286aee20f6f0b86e4c41c;hp=12eb36494ca467169aff4db35335b3fdadd4cbee;hpb=d6859901012535b3781e5332923ede51d5977395;p=git.git diff --git a/exec_cmd.c b/exec_cmd.c index 12eb36494..5d6a1247b 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -1,10 +1,11 @@ #include "cache.h" #include "exec_cmd.h" +#include "quote.h" #define MAX_ARGS 32 extern char **environ; static const char *builtin_exec_path = GIT_EXEC_PATH; -static const char *current_exec_path = NULL; +static const char *current_exec_path; void git_set_exec_path(const char *exec_path) { @@ -21,7 +22,7 @@ const char *git_exec_path(void) return current_exec_path; env = getenv("GIT_EXEC_PATH"); - if (env) { + if (env && *env) { return env; } @@ -43,7 +44,7 @@ int execv_git_cmd(const char **argv) const char *exec_dir = paths[i]; const char *tmp; - if (!exec_dir) continue; + if (!exec_dir || !*exec_dir) continue; if (*exec_dir != '/') { if (!getcwd(git_command, sizeof(git_command))) { @@ -96,9 +97,13 @@ int execv_git_cmd(const char **argv) tmp = argv[0]; argv[0] = git_command; + trace_argv_printf(argv, -1, "trace: exec:"); + /* execve() can only ever return if it fails */ execve(git_command, (char **)argv, environ); + trace_printf("trace: exec failed: %s\n", strerror(errno)); + argv[0] = tmp; } return -1;