diff options
author | Jim Meyering <jim@meyering.net> | 2008-01-10 09:54:25 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-01-10 01:08:11 -0800 |
commit | 95693d45ee1c1d4b76cac672636cf31229186a18 (patch) | |
tree | 84b1bec8ad8a2ab4c24cc6552b918d295c7de9f5 | |
parent | 35cda061640c26371d5841099ad30c6968d510b2 (diff) | |
download | git-95693d45ee1c1d4b76cac672636cf31229186a18.tar.gz git-95693d45ee1c1d4b76cac672636cf31229186a18.tar.xz |
bundle, fast-import: detect write failure
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | bundle.c | 6 | ||||
-rw-r--r-- | fast-import.c | 5 |
2 files changed, 6 insertions, 5 deletions
@@ -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 74597c901..82e916133 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)); |