From 7560145d5faff592badee72b7cdbe9380dc18d4f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 22 Dec 2017 15:10:00 +0200 Subject: [PATCH] lib: istream-multiplex - Return error if the last packet wasn't fully read --- src/lib/istream-multiplex.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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); } } }