summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2011-05-31 12:08:55 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-05-31 12:08:55 -0700
commit27c67292019e8d49c5b5e3ce73c59c03c08b2ada (patch)
tree5a7cb36545a5a6a04fe3776ce61c13eaa133f1b0
parentMerge branch 'jk/maint-remote-mirror-safer' (diff)
parentread_in_full: always report errors (diff)
downloadtgif-27c67292019e8d49c5b5e3ce73c59c03c08b2ada.tar.xz
Merge branch 'jk/read-in-full-stops-on-error'
* jk/read-in-full-stops-on-error: read_in_full: always report errors
-rw-r--r--wrapper.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/wrapper.c b/wrapper.c
index 28290002b9..85f09df747 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -148,8 +148,10 @@ ssize_t read_in_full(int fd, void *buf, size_t count)
while (count > 0) {
ssize_t loaded = xread(fd, p, count);
- if (loaded <= 0)
- return total ? total : loaded;
+ if (loaded < 0)
+ return -1;
+ if (loaded == 0)
+ return total;
count -= loaded;
p += loaded;
total += loaded;