summaryrefslogtreecommitdiffstats
path: root/lib/libc_r
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2003-09-29 13:41:26 +0000
committerdeischen <deischen@FreeBSD.org>2003-09-29 13:41:26 +0000
commitc568e81b8f4e488590ce470487e671f615491e59 (patch)
treefeedcb58690cda51d991a21d32b1b028bf509260 /lib/libc_r
parente8c883403c81d49b943d599a73a93473c79196fa (diff)
downloadFreeBSD-src-c568e81b8f4e488590ce470487e671f615491e59.zip
FreeBSD-src-c568e81b8f4e488590ce470487e671f615491e59.tar.gz
If __sys_write() returns 0, allow that to exit the loop in libc_r's
wrapped version of write(). Submitted by: dan@langille.org
Diffstat (limited to 'lib/libc_r')
-rw-r--r--lib/libc_r/uthread/uthread_write.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc_r/uthread/uthread_write.c b/lib/libc_r/uthread/uthread_write.c
index 85ef9eb..123a88e 100644
--- a/lib/libc_r/uthread/uthread_write.c
+++ b/lib/libc_r/uthread/uthread_write.c
@@ -95,7 +95,7 @@ _write(int fd, const void *buf, size_t nbytes)
* write:
*/
if (blocking && ((n < 0 && (errno == EWOULDBLOCK ||
- errno == EAGAIN)) || (n >= 0 && num < nbytes))) {
+ errno == EAGAIN)) || (n > 0 && num < nbytes))) {
curthread->data.fd.fd = fd;
_thread_kern_set_timeout(NULL);
@@ -133,7 +133,7 @@ _write(int fd, const void *buf, size_t nbytes)
* If there was an error, return partial success
* (if any bytes were written) or else the error:
*/
- } else if (n < 0) {
+ } else if (n <= 0) {
if (num > 0)
ret = num;
else
OpenPOWER on IntegriCloud