From: Michael Haggerty Date: Wed, 18 Jun 2014 21:08:51 GMT Subject: Re: [PATCH v18 14/48] refs.c: log_ref_write should try to return meaningful errno Message-ID: <53A1FFE3.9060006@alum.mit.edu> In-Reply-To: <1403020442-31049-15-git-send-email-sahlberg@google.com> On 06/17/2014 05:53 PM, Ronnie Sahlberg wrote: > Making errno from write_ref_sha1() meaningful, which should fix > > * a bug in "git checkout -b" where it prints strerror(errno) > despite errno possibly being zero or clobbered > > * a bug in "git fetch"'s s_update_ref, which trusts the result of an > errno == ENOTDIR check to detect D/F conflicts > > Signed-off-by: Ronnie Sahlberg > --- > refs.c | 29 ++++++++++++++++++++++++----- > 1 file changed, 24 insertions(+), 5 deletions(-) > > diff --git a/refs.c b/refs.c > index 211429d..1f2eb24 100644 > --- a/refs.c > +++ b/refs.c > @@ -1979,6 +1979,7 @@ static int remove_empty_directories(const char *file) > result = remove_dir_recursively(&path, REMOVE_DIR_EMPTY_ONLY); > save_errno = errno; > > + errno = save_errno; > strbuf_release(&path); > errno = save_errno; This new line looks like an accident. > [...] Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/