diff options
author | Heikki Orsila <heikki.orsila@iki.fi> | 2008-05-03 16:27:26 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-03 22:15:25 -0700 |
commit | c697ad143ba1ff58b29e7efe149d244d4b7010a5 (patch) | |
tree | 7d3446a01ad6e3f37dd318e0e29d57da21024366 /sha1_file.c | |
parent | 471793f91e4bd61bb809045c7088a30ee1305a19 (diff) | |
download | git-c697ad143ba1ff58b29e7efe149d244d4b7010a5.tar.gz git-c697ad143ba1ff58b29e7efe149d244d4b7010a5.tar.xz |
Cleanup xread() loops to use read_in_full()
Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sha1_file.c b/sha1_file.c index c2ab7ea11..3516777bc 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2466,16 +2466,10 @@ int index_path(unsigned char *sha1, const char *path, struct stat *st, int write int read_pack_header(int fd, struct pack_header *header) { - char *c = (char*)header; - ssize_t remaining = sizeof(struct pack_header); - do { - ssize_t r = xread(fd, c, remaining); - if (r <= 0) - /* "eof before pack header was fully read" */ - return PH_ERROR_EOF; - remaining -= r; - c += r; - } while (remaining > 0); + if (read_in_full(fd, header, sizeof(*header)) < sizeof(*header)) + /* "eof before pack header was fully read" */ + return PH_ERROR_EOF; + if (header->hdr_signature != htonl(PACK_SIGNATURE)) /* "protocol error (pack signature mismatch detected)" */ return PH_ERROR_PACK_SIGNATURE; |