diff -r c374d11d6720 -r 7fe53d5d587c src/server/util/io.c --- a/src/server/util/io.c Mon Feb 11 09:18:33 2019 +0100 +++ b/src/server/util/io.c Fri Aug 02 22:40:02 2019 +0200 @@ -521,10 +521,16 @@ char *write_buf = buf; while(r > 0) { ssize_t w = fd->write(fd, write_buf, r); + if(w <= 0) { + break; + } r -= w; length -= w; write_buf += w; } + if(r > 0) { + break; + } } free(buf); if(length > 0) {