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';