git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] bundle, fast-import: detect write failure

From
Jim Meyering <jim@meyering.net>
Date
Jan 10, 2008, 08:54 UTC
Message-ID
<874pdmhxha.fsf@rho.meyering.net>
I noticed some unchecked writes.  This fixes them.
* bundle.c (create_bundle): Die upon write failure.
* fast-import.c (keep_pack): Die upon write or close failure.
Signed-off-by: Jim Meyering <meyering@redhat.com>
---
 bundle.c      |    6 +++---
 fast-import.c |    5 +++--
 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/bundle.c b/bundle.c
index be204d8..316aa74 100644
--- a/bundle.c
+++ b/bundle.c
@@ -320,9 +320,9 @@ int create_bundle(struct bundle_header *header, const char *path,
 	for (i = 0; i < revs.pending.nr; i++) {
 		struct object *object = revs.pending.objects[i].item;
 		if (object->flags & UNINTERESTING)
-			write(rls.in, "^", 1);
-		write(rls.in, sha1_to_hex(object->sha1), 40);
-		write(rls.in, "\n", 1);
+			write_or_die(rls.in, "^", 1);
+		write_or_die(rls.in, sha1_to_hex(object->sha1), 40);
+		write_or_die(rls.in, "\n", 1);
 	}
 	if (finish_command(&rls))
 		return error ("pack-objects died");
diff --git a/fast-import.c b/fast-import.c
index 74597c9..82e9161 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -878,8 +878,9 @@ static char *keep_pack(char *curr_index_name)
 	keep_fd = open(name, O_RDWR|O_CREAT|O_EXCL, 0600);
 	if (keep_fd < 0)
 		die("cannot create keep file");
-	write(keep_fd, keep_msg, strlen(keep_msg));
-	close(keep_fd);
+	write_or_die(keep_fd, keep_msg, strlen(keep_msg));
+	if (close(keep_fd))
+		die("failed to write keep file");

 	snprintf(name, sizeof(name), "%s/pack/pack-%s.pack",
 		 get_object_directory(), sha1_to_hex(pack_data->sha1));
--
1.5.4.rc2.85.g71fd
Next: Pierre Habouzit
Message 1 of 13 in “bundle, fast-import: detect write failure”
  1. bundle, fast-import: detect write failureJim Meyering, Jan 10, 2008
  2. Pierre HabouzitJan 10, 2008
  3. Johannes SchindelinJan 10, 2008
  4. Jim MeyeringJan 10, 2008
  5. Johannes SchindelinJan 10, 2008
  6. Jim MeyeringJan 10, 2008
  7. Pierre HabouzitJan 10, 2008
  8. Jim MeyeringJan 10, 2008
  9. Pierre HabouzitJan 10, 2008
  10. Jakub NarebskiJan 11, 2008
  11. Junio C HamanoJan 11, 2008
  12. David TweedJan 11, 2008
  13. Johannes SchindelinJan 11, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.