aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Faye-Lund <kusmabite@gmail.com>2014-01-17 15:17:09 +0100
committerJunio C Hamano <gitster@pobox.com>2014-01-17 12:09:26 -0800
commit7edc02f4deedb3a11abeb328dc2596b2886c2f47 (patch)
treef592d5687516f56552669dd16e34bfbc8d538be1
parent4224916ae979204f13db2996d9e32490e0acb90f (diff)
downloadgit-7edc02f4deedb3a11abeb328dc2596b2886c2f47.tar.gz
git-7edc02f4deedb3a11abeb328dc2596b2886c2f47.tar.xz
prefer xwrite instead of write
Our xwrite wrapper already deals with a few potential hazards, and are as such more robust. Prefer it instead of write to get the robustness benefits everywhere. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Reviewed-and-improved-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/merge.c2
-rw-r--r--streaming.c2
-rw-r--r--transport-helper.c5
3 files changed, 4 insertions, 5 deletions
diff --git a/builtin/merge.c b/builtin/merge.c
index 41fb66dec..a6a38ee5b 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -367,7 +367,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead
sha1_to_hex(commit->object.sha1));
pretty_print_commit(&ctx, commit, &out);
}
- if (write(fd, out.buf, out.len) < 0)
+ if (write_in_full(fd, out.buf, out.len) != out.len)
die_errno(_("Writing SQUASH_MSG"));
if (close(fd))
die_errno(_("Finishing SQUASH_MSG"));
diff --git a/streaming.c b/streaming.c
index debe90452..e3d697b88 100644
--- a/streaming.c
+++ b/streaming.c
@@ -538,7 +538,7 @@ int stream_blob_to_fd(int fd, unsigned const char *sha1, struct stream_filter *f
goto close_and_exit;
}
if (kept && (lseek(fd, kept - 1, SEEK_CUR) == (off_t) -1 ||
- write(fd, "", 1) != 1))
+ xwrite(fd, "", 1) != 1))
goto close_and_exit;
result = 0;
diff --git a/transport-helper.c b/transport-helper.c
index 673b7c214..ea34b39a8 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -1129,9 +1129,8 @@ static int udt_do_write(struct unidirectional_transfer *t)
return 0; /* Nothing to write. */
transfer_debug("%s is writable", t->dest_name);
- bytes = write(t->dest, t->buf, t->bufuse);
- if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
- errno != EINTR) {
+ bytes = xwrite(t->dest, t->buf, t->bufuse);
+ if (bytes < 0 && errno != EWOULDBLOCK) {
error("write(%s) failed: %s", t->dest_name, strerror(errno));
return -1;
} else if (bytes > 0) {