Code

fast-import: Don't use a maybe-clobbered errno value
authorJim Meyering <jim@meyering.net>
Fri, 18 Jan 2008 18:35:49 +0000 (19:35 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Jan 2008 21:19:37 +0000 (13:19 -0800)
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>
fast-import.c

index 5e89eef1aa9884605c600f9b9add32207ec41f43..45b4edf36b04970ccb5589e9abf93d8382c6da9b 100644 (file)
@@ -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;
        }
 }