Commit 5daca042c642bf123f0b0a39c1ad32ca0afcac70

Vicent Marti 2012-08-03T01:01:21

filebuf: Check the return value for `close`

diff --git a/src/filebuf.c b/src/filebuf.c
index 876f8e3..8b3ebb3 100644
--- a/src/filebuf.c
+++ b/src/filebuf.c
@@ -319,10 +319,15 @@ int git_filebuf_commit(git_filebuf *file, mode_t mode)
 	if (verify_last_error(file) < 0)
 		goto on_error;
 
-	p_close(file->fd);
-	file->fd = -1;
 	file->fd_is_open = false;
 
+	if (p_close(file->fd) < 0) {
+		giterr_set(GITERR_OS, "Failed to close file at '%s'", file->path_lock);
+		goto on_error;
+	}
+
+	file->fd = -1;
+
 	if (p_chmod(file->path_lock, mode)) {
 		giterr_set(GITERR_OS, "Failed to set attributes for file at '%s'", file->path_lock);
 		goto on_error;