From: Johannes Schindelin Date: Wed, 28 Jun 2006 10:45:27 +0000 (+0200) Subject: Save errno in handle_alias() X-Git-Tag: v1.4.1-rc2~2 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=47e5c0ca2cabb406518dda5c09432dc996f7ef2b;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/git.c b/git.c index 159fec008..ca8961f07 100644 --- a/git.c +++ b/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; }