Skip to content

Commit

Permalink
refs.c: make remove_empty_directories always set errno to something sane
Browse files Browse the repository at this point in the history
Making errno when returning from remove_empty_directories() more
obviously meaningful, which should provide some peace of mind for
people auditing lock_ref_sha1_basic.

Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Michael Haggerty <mhagger@alum.mit.edu>
  • Loading branch information
Ronnie Sahlberg authored and Junio C Hamano committed Jul 14, 2014
1 parent 835e3c9 commit 470a91e
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1960,14 +1960,16 @@ static int remove_empty_directories(const char *file)
* only empty directories), remove them.
*/
struct strbuf path;
int result;
int result, save_errno;

strbuf_init(&path, 20);
strbuf_addstr(&path, file);

result = remove_dir_recursively(&path, REMOVE_DIR_EMPTY_ONLY);
save_errno = errno;

strbuf_release(&path);
errno = save_errno;

return result;
}
Expand Down Expand Up @@ -2056,6 +2058,7 @@ int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
return logs_found;
}

/* This function should make sure errno is meaningful on error */
static struct ref_lock *lock_ref_sha1_basic(const char *refname,
const unsigned char *old_sha1,
int flags, int *type_p)
Expand Down

0 comments on commit 470a91e

Please sign in to comment.