From: Jakub Jelinek Date: Mon, 12 Sep 2005 14:20:49 +0000 (+0000) Subject: 2.3.90-12 X-Git-Tag: cvs/fedora-glibc-2_3_90-12~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b881e6f83b900490913e870f4d6df9a3e94c6c8c;p=thirdparty%2Fglibc.git 2.3.90-12 --- diff --git a/fedora/tzdata-update.c b/fedora/tzdata-update.c index 38539817d31..7f12322bf4e 100644 --- a/fedora/tzdata-update.c +++ b/fedora/tzdata-update.c @@ -400,12 +400,18 @@ char zonename[1024]; ssize_t readall (int fd, void *buf, size_t len) { + INTERNAL_SYSCALL_DECL (err); size_t n = len; ssize_t ret; do { ret = INTERNAL_SYSCALL (read, err, 3, fd, buf, n); - if (ret <= 0) + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) + { + ret = -1; + break; + } + else if (ret == 0) break; buf = (char *) buf + ret; n -= ret; @@ -417,12 +423,18 @@ readall (int fd, void *buf, size_t len) ssize_t writeall (int fd, const void *buf, size_t len) { + INTERNAL_SYSCALL_DECL (err); size_t n = len; ssize_t ret; do { ret = INTERNAL_SYSCALL (write, err, 3, fd, buf, n); - if (ret <= 0) + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) + { + ret = -1; + break; + } + else if (ret == 0) break; buf = (const char *) buf + ret; n -= ret;