Save errno in handle_alias()
git.c:main() relies on the value of errno being set by the last attempt to execute the command. However, if something goes awry in handle_alias(), that assumption is wrong. So restore errno before returning from handle_alias(). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
f0ef05967f
commit
47e5c0ca2c
4
git.c
4
git.c
@ -100,7 +100,7 @@ static int split_cmdline(char *cmdline, const char ***argv)
|
||||
|
||||
static int handle_alias(int *argcp, const char ***argv)
|
||||
{
|
||||
int nongit = 0, ret = 0;
|
||||
int nongit = 0, ret = 0, saved_errno = errno;
|
||||
const char *subdir;
|
||||
|
||||
subdir = setup_git_directory_gently(&nongit);
|
||||
@ -138,6 +138,8 @@ static int handle_alias(int *argcp, const char ***argv)
|
||||
if (subdir)
|
||||
chdir(subdir);
|
||||
|
||||
errno = saved_errno;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user