diff options
author | Ronnie Sahlberg <sahlberg@google.com> | 2014-06-20 07:42:52 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-07-14 11:54:41 -0700 |
commit | 470a91ef75d61d102c9cb655a7b8ea1555337d2d (patch) | |
tree | 5c465831e9f76a46f4d5b85582fc727d26f69687 | |
parent | refs.c: verify_lock should set errno to something meaningful (diff) | |
download | tgif-470a91ef75d61d102c9cb655a7b8ea1555337d2d.tar.xz |
refs.c: make remove_empty_directories always set errno to something sane
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>
-rw-r--r-- | refs.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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; } @@ -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) |