changeset 22599:569e7f438b90

ostream-multiplex: Check flush return value
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Fri, 06 Oct 2017 09:02:49 +0300
parents 14262da623ba
children be272aa6e878
files src/lib/ostream-multiplex.c
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/ostream-multiplex.c	Fri Oct 06 08:55:33 2017 +0300
+++ b/src/lib/ostream-multiplex.c	Fri Oct 06 09:02:49 2017 +0300
@@ -68,7 +68,7 @@
 o_stream_multiplex_sendv(struct multiplex_ostream *mstream)
 {
 	struct multiplex_ochannel *channel;
-	ssize_t ret = 0;
+	ssize_t ret = 0, ret2;
 	if (mstream->bufsize <= mstream->wbuf->used + 5)
 		return -2;
 
@@ -93,7 +93,10 @@
 			propagate_error(mstream, mstream->parent->stream_errno);
 			return ret;
 		}
-		o_stream_flush(mstream->parent);
+		if ((ret2 = o_stream_flush(mstream->parent)) < 0) {
+			propagate_error(mstream, mstream->parent->stream_errno);
+			return ret2;
+		}
 		buffer_delete(mstream->wbuf, 0, ret);
 	}
 	return ret;