Mercurial > blahgd > experimental
changeset 739:5c14be61e43a
utils: xread should return 0 or possitive errnos
This allows read_file_common() to return better error codes.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Tue, 13 Oct 2015 13:44:48 -0400 |
parents | ce22627e67da |
children | 49511dad8508 |
files | utils.c |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/utils.c Tue Oct 13 13:43:48 2015 -0400 +++ b/utils.c Tue Oct 13 13:44:48 2015 -0400 @@ -81,18 +81,18 @@ if (ret < 0) { LOG("%s: failed to read %u bytes from fd %d: %s", __func__, nbyte, fd, strerror(errno)); - return -errno; + return errno; } if (ret == 0) - break; + return EPIPE; nbyte -= ret; total += ret; ptr += ret; } - return total; + return 0; } int xwrite(int fd, const void *buf, size_t nbyte) @@ -148,9 +148,9 @@ } ret = xread(fd, out, statbuf.st_size); - if (ret != statbuf.st_size) { + if (ret) { free(out); - out = ERR_PTR(EAGAIN); /* is there a better error? */ + out = ERR_PTR(ret); } else { out[statbuf.st_size] = '\0';