From 8e01353ea837db6f80a154fafe9dea697ce03410 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Sat, 14 May 2016 03:13:25 +0200 Subject: [PATCH] lib: Report as many errors as possible from biowritesome. --- lib/bufio.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/bufio.c b/lib/bufio.c index fe5d005..1929d31 100644 --- a/lib/bufio.c +++ b/lib/bufio.c @@ -267,8 +267,14 @@ ssize_t biowritesome(struct bufio *bio, const void *data, size_t len) ret = min(len, bio->wbuf.s - bio->wbuf.d); memcpy(bio->wbuf.b + bio->wbuf.d, data, ret); bio->wbuf.d += ret; - if((bioflushsome(bio) < 0) && (ret == 0)) - return(-1); + if(bioflushsome(bio) < 0) { + if(ret == 0) + return(-1); + if(ret < bio->wbuf.d - bio->wh) { /* Should never be false */ + bio->wbuf.d -= ret; + return(-1); + } + } return(ret); } -- 2.11.0