aboutsummaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2007-01-08 15:58:08 +0000
committerJunio C Hamano <junkio@cox.net>2007-01-08 15:44:47 -0800
commit93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac (patch)
tree8d3cda91ddd8242531995cb304f37578bfaa7cf0 /cache.h
parente08140568a131bcd26e64a0bc8188040847be998 (diff)
downloadgit-93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac.tar.gz
git-93d26e4cb9cec2eb8abb4f37e6dda2c86fcceeac.tar.xz
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 'cache.h')
-rw-r--r--cache.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cache.h b/cache.h
index 38a20a806..a9583ff18 100644
--- a/cache.h
+++ b/cache.h
@@ -432,6 +432,7 @@ extern char *git_commit_encoding;
extern char *git_log_output_encoding;
extern int copy_fd(int ifd, int ofd);
+extern int read_in_full(int fd, void *buf, size_t count);
extern void read_or_die(int fd, void *buf, size_t count);
extern int write_in_full(int fd, const void *buf, size_t count);
extern void write_or_die(int fd, const void *buf, size_t count);