diff options
-rw-r--r-- | libbb/full_read.c | 2 | ||||
-rw-r--r-- | libbb/full_write.c | 2 | ||||
-rw-r--r-- | libbb/xfuncs.c | 16 |
3 files changed, 8 insertions, 12 deletions
diff --git a/libbb/full_read.c b/libbb/full_read.c index b5837d5bd..068d16698 100644 --- a/libbb/full_read.c +++ b/libbb/full_read.c | |||
@@ -24,7 +24,7 @@ ssize_t full_read(int fd, void *buf, size_t len) | |||
24 | 24 | ||
25 | total = 0; | 25 | total = 0; |
26 | 26 | ||
27 | while (len > 0) { | 27 | while (len) { |
28 | cc = safe_read(fd, buf, len); | 28 | cc = safe_read(fd, buf, len); |
29 | 29 | ||
30 | if (cc < 0) | 30 | if (cc < 0) |
diff --git a/libbb/full_write.c b/libbb/full_write.c index d812d04b4..563f4a851 100644 --- a/libbb/full_write.c +++ b/libbb/full_write.c | |||
@@ -23,7 +23,7 @@ ssize_t full_write(int fd, const void *buf, size_t len) | |||
23 | 23 | ||
24 | total = 0; | 24 | total = 0; |
25 | 25 | ||
26 | while (len > 0) { | 26 | while (len) { |
27 | cc = safe_write(fd, buf, len); | 27 | cc = safe_write(fd, buf, len); |
28 | 28 | ||
29 | if (cc < 0) | 29 | if (cc < 0) |
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index d22cd279a..efc919491 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -113,24 +113,20 @@ int xopen3(const char *pathname, int flags, int mode) | |||
113 | // Die with an error message if we can't read the entire buffer. | 113 | // Die with an error message if we can't read the entire buffer. |
114 | void xread(int fd, void *buf, size_t count) | 114 | void xread(int fd, void *buf, size_t count) |
115 | { | 115 | { |
116 | while (count) { | 116 | if (count) { |
117 | ssize_t size = safe_read(fd, buf, count); | 117 | ssize_t size = full_read(fd, buf, count); |
118 | if (size < 1) | 118 | if (size != count) |
119 | bb_error_msg_and_die("short read"); | 119 | bb_error_msg_and_die("short read"); |
120 | count -= size; | ||
121 | buf = ((char *) buf) + size; | ||
122 | } | 120 | } |
123 | } | 121 | } |
124 | 122 | ||
125 | // Die with an error message if we can't write the entire buffer. | 123 | // Die with an error message if we can't write the entire buffer. |
126 | void xwrite(int fd, void *buf, size_t count) | 124 | void xwrite(int fd, void *buf, size_t count) |
127 | { | 125 | { |
128 | while (count) { | 126 | if (count) { |
129 | ssize_t size = safe_write(fd, buf, count); | 127 | ssize_t size = full_write(fd, buf, count); |
130 | if (size < 1) | 128 | if (size != count) |
131 | bb_error_msg_and_die("short write"); | 129 | bb_error_msg_and_die("short write"); |
132 | count -= size; | ||
133 | buf = ((char *) buf) + size; | ||
134 | } | 130 | } |
135 | } | 131 | } |
136 | 132 | ||