Skip to content

Commit

Permalink
fast-import.c: don't try to commit marks file if write failed
Browse files Browse the repository at this point in the history
We also move the assignment of -1 to the lock file descriptor
up, so that rollback_lock_file() can be called safely after a
possible attempt to fclose(). This matches the contents of
the 'if' statement just above testing success of fdopen().

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Brandon Casey authored and Junio C Hamano committed Jan 18, 2008
1 parent b531394 commit fb54abd
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions fast-import.c
Original file line number Diff line number Diff line change
Expand Up @@ -1545,19 +1545,27 @@ static void dump_marks(void)
return;
}

dump_marks_helper(f, 0, marks);
if (ferror(f) || fclose(f))
failure |= error("Unable to write marks file %s: %s",
mark_file, strerror(errno));
/*
* Since the lock file was fdopen()'ed and then fclose()'ed above,
* assign -1 to the lock file descriptor so that commit_lock_file()
* Since the lock file was fdopen()'ed, it should not be close()'ed.
* Assign -1 to the lock file descriptor so that commit_lock_file()
* won't try to close() it.
*/
mark_lock.fd = -1;
if (commit_lock_file(&mark_lock))
failure |= error("Unable to write commit file %s: %s",

dump_marks_helper(f, 0, marks);
if (ferror(f) || fclose(f)) {
rollback_lock_file(&mark_lock);
failure |= error("Unable to write marks file %s: %s",
mark_file, strerror(errno));
return;
}

if (commit_lock_file(&mark_lock)) {
rollback_lock_file(&mark_lock);
failure |= error("Unable to commit marks file %s: %s",
mark_file, strerror(errno));
return;
}
}

static int read_next_command(void)
Expand Down

0 comments on commit fb54abd

Please sign in to comment.