summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jim Meyering <jim@meyering.net>2008-01-18 19:35:49 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-01-18 13:19:37 -0800
commit5a7b1b571e2bf59c65f9e5333414d2e0f7df6952 (patch)
treeae9455651613ebb01ea00b7edfa53c7615ca3738
parentMove sha1_file_to_archive into libgit (diff)
downloadtgif-5a7b1b571e2bf59c65f9e5333414d2e0f7df6952.tar.xz
fast-import: Don't use a maybe-clobbered errno value
Without this change, each diagnostic could use an errno value clobbered by the close or unlink in rollback_lock_file. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--fast-import.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fast-import.c b/fast-import.c
index 5e89eef1aa..45b4edf36b 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1541,9 +1541,10 @@ static void dump_marks(void)
f = fdopen(mark_fd, "w");
if (!f) {
+ int saved_errno = errno;
rollback_lock_file(&mark_lock);
failure |= error("Unable to write marks file %s: %s",
- mark_file, strerror(errno));
+ mark_file, strerror(saved_errno));
return;
}
@@ -1556,16 +1557,18 @@ static void dump_marks(void)
dump_marks_helper(f, 0, marks);
if (ferror(f) || fclose(f)) {
+ int saved_errno = errno;
rollback_lock_file(&mark_lock);
failure |= error("Unable to write marks file %s: %s",
- mark_file, strerror(errno));
+ mark_file, strerror(saved_errno));
return;
}
if (commit_lock_file(&mark_lock)) {
+ int saved_errno = errno;
rollback_lock_file(&mark_lock);
failure |= error("Unable to commit marks file %s: %s",
- mark_file, strerror(errno));
+ mark_file, strerror(saved_errno));
return;
}
}