From: Timo Sirainen Date: Fri, 22 Dec 2017 13:10:00 +0000 (+0200) Subject: lib: istream-multiplex - Return error if the last packet wasn't fully read X-Git-Tag: 2.2.34~170 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7560145d5faff592badee72b7cdbe9380dc18d4f;p=thirdparty%2Fdovecot%2Fcore.git lib: istream-multiplex - Return error if the last packet wasn't fully read --- diff --git a/src/lib/istream-multiplex.c b/src/lib/istream-multiplex.c index acc76024a9..1298ed9ecb 100644 --- a/src/lib/istream-multiplex.c +++ b/src/lib/istream-multiplex.c @@ -56,8 +56,15 @@ static void propagate_eof(struct multiplex_istream *mstream) { struct multiplex_ichannel **channelp; array_foreach_modifiable(&mstream->channels, channelp) { - if (*channelp != NULL) { - (*channelp)->istream.istream.eof = TRUE; + if (*channelp == NULL) + continue; + + (*channelp)->istream.istream.eof = TRUE; + if (mstream->remain > 0) { + (*channelp)->istream.istream.stream_errno = EPIPE; + io_stream_set_error(&(*channelp)->istream.iostream, + "Unexpected EOF - %u bytes remaining in packet", + mstream->remain); } } }