# HG changeset patch # User Timo Sirainen # Date 1513948200 -7200 # Node ID b35916412f38f906a8614ab499018622d02ce047 # Parent 687aec32e0e582f409af680754ec9ed2c79f8588 lib: istream-multiplex - Return error if the last packet wasn't fully read diff -r 687aec32e0e5 -r b35916412f38 src/lib/istream-multiplex.c --- 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); } } }