summaryrefslogtreecommitdiff
path: root/http-push.c
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2007-01-08 15:58:08 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-01-08 23:44:47 (GMT)
commit93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac (patch)
tree8d3cda91ddd8242531995cb304f37578bfaa7cf0 /http-push.c
parente08140568a131bcd26e64a0bc8188040847be998 (diff)
downloadgit-93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac.zip
git-93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac.tar.gz
git-93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac.tar.bz2
short i/o: fix calls to read to use xread or read_in_full
We have a number of badly checked read() calls. Often we are expecting read() to read exactly the size we requested or fail, this fails to handle interrupts or short reads. Add a read_in_full() providing those semantics. Otherwise we at a minimum need to check for EINTR and EAGAIN, where this is appropriate use xread(). Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'http-push.c')
-rw-r--r--http-push.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/http-push.c b/http-push.c
index ecefdfd..acb5c27 100644
--- a/http-push.c
+++ b/http-push.c
@@ -288,7 +288,7 @@ static void start_fetch_loose(struct transfer_request *request)
prevlocal = open(prevfile, O_RDONLY);
if (prevlocal != -1) {
do {
- prev_read = read(prevlocal, prev_buf, PREV_BUF_SIZE);
+ prev_read = xread(prevlocal, prev_buf, PREV_BUF_SIZE);
if (prev_read>0) {
if (fwrite_sha1_file(prev_buf,
1,