From: Matthias Lederhofer Date: Wed, 06 Jun 2007 21:29:59 GMT Subject: [PATCH] setup_git_directory: fix segfault if repository is found in cwd Message-ID: <20070606212959.GA8800@moooo.ath.cx> In-Reply-To: <20070603144401.GA9518@moooo.ath.cx> Additionally there was a similar part calling setenv and getenv in the same way which missed a check if getenv succeeded. Signed-off-by: Matthias Lederhofer --- There seems to be no easy way to test this case. We'd have to run the test in a directory which never has a .git directory in any parent. --- setup.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/setup.c b/setup.c index 14a4d95..dba8012 100644 --- a/setup.c +++ b/setup.c @@ -251,6 +251,9 @@ const char *setup_git_directory_gently(int *nongit_ok) die("Not a git repository"); } setenv(GIT_DIR_ENVIRONMENT, cwd, 1); + gitdirenv = getenv(GIT_DIR_ENVIRONMENT); + if (!gitdirenv) + die("getenv after setenv failed"); } if (PATH_MAX - 40 < strlen(gitdirenv)) { @@ -290,6 +293,8 @@ const char *setup_git_directory_gently(int *nongit_ok) if (gitdirenv[0] != '/') { setenv(GIT_DIR_ENVIRONMENT, gitdir, 1); gitdirenv = getenv(GIT_DIR_ENVIRONMENT); + if (!gitdirenv) + die("getenv after setenv failed"); if (PATH_MAX - 40 < strlen(gitdirenv)) { if (nongit_ok) { *nongit_ok = 1; -- 1.5.2.1.887.ge344-dirty