Mercurial > dovecot > core-2.2
changeset 22719:b35916412f38
lib: istream-multiplex - Return error if the last packet wasn't fully read
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 22 Dec 2017 15:10:00 +0200 |
parents | 687aec32e0e5 |
children | 2c86355ae261 |
files | src/lib/istream-multiplex.c |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/istream-multiplex.c Fri Dec 22 15:07:28 2017 +0200 +++ b/src/lib/istream-multiplex.c Fri Dec 22 15:10:00 2017 +0200 @@ -56,8 +56,15 @@ { 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); } } }