]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
ostream-multiplex: Check flush return value
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 6 Oct 2017 06:02:49 +0000 (09:02 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 10 Oct 2017 08:41:04 +0000 (11:41 +0300)
src/lib/ostream-multiplex.c

index afc00f72616446e51b90f7534b1b78c5589f7012..fe613f28471f000b89681a1b7d221954941e9a1e 100644 (file)
@@ -68,7 +68,7 @@ static ssize_t
 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 @@ o_stream_multiplex_sendv(struct multiplex_ostream *mstream)
                        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;