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>
This commit is contained in:

committed by
Junio C Hamano

parent
181256442e
commit
5a7b1b571e
@ -1541,9 +1541,10 @@ static void dump_marks(void)
|
|||||||
|
|
||||||
f = fdopen(mark_fd, "w");
|
f = fdopen(mark_fd, "w");
|
||||||
if (!f) {
|
if (!f) {
|
||||||
|
int saved_errno = errno;
|
||||||
rollback_lock_file(&mark_lock);
|
rollback_lock_file(&mark_lock);
|
||||||
failure |= error("Unable to write marks file %s: %s",
|
failure |= error("Unable to write marks file %s: %s",
|
||||||
mark_file, strerror(errno));
|
mark_file, strerror(saved_errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1556,16 +1557,18 @@ static void dump_marks(void)
|
|||||||
|
|
||||||
dump_marks_helper(f, 0, marks);
|
dump_marks_helper(f, 0, marks);
|
||||||
if (ferror(f) || fclose(f)) {
|
if (ferror(f) || fclose(f)) {
|
||||||
|
int saved_errno = errno;
|
||||||
rollback_lock_file(&mark_lock);
|
rollback_lock_file(&mark_lock);
|
||||||
failure |= error("Unable to write marks file %s: %s",
|
failure |= error("Unable to write marks file %s: %s",
|
||||||
mark_file, strerror(errno));
|
mark_file, strerror(saved_errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (commit_lock_file(&mark_lock)) {
|
if (commit_lock_file(&mark_lock)) {
|
||||||
|
int saved_errno = errno;
|
||||||
rollback_lock_file(&mark_lock);
|
rollback_lock_file(&mark_lock);
|
||||||
failure |= error("Unable to commit marks file %s: %s",
|
failure |= error("Unable to commit marks file %s: %s",
|
||||||
mark_file, strerror(errno));
|
mark_file, strerror(saved_errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user