summaryrefslogtreecommitdiff
path: root/merge-recursive.c
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2007-01-08 15:58:23 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-01-08 23:44:47 (GMT)
commit93822c2239a336e5cb583549071c59202ef6c5b2 (patch)
treef0c0a11adb226671e6e71803fa7d41d274aa7807 /merge-recursive.c
parent93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac (diff)
downloadgit-93822c2239a336e5cb583549071c59202ef6c5b2.zip
git-93822c2239a336e5cb583549071c59202ef6c5b2.tar.gz
git-93822c2239a336e5cb583549071c59202ef6c5b2.tar.bz2
short i/o: fix calls to write to use xwrite or write_in_full
We have a number of badly checked write() calls. Often we are expecting write() to write exactly the size we requested or fail, this fails to handle interrupts or short writes. Switch to using the new write_in_full(). Otherwise we at a minimum need to check for EINTR and EAGAIN, where this is appropriate use xwrite(). Note, the changes to config handling are much larger and handled in the next patch in the sequence. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'merge-recursive.c')
-rw-r--r--merge-recursive.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index bac16f5..87a27e0 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -517,7 +517,7 @@ static int mkdir_p(const char *path, unsigned long mode)
static void flush_buffer(int fd, const char *buf, unsigned long size)
{
while (size > 0) {
- long ret = xwrite(fd, buf, size);
+ long ret = write_in_full(fd, buf, size);
if (ret < 0) {
/* Ignore epipe */
if (errno == EPIPE)