From 7f51c1ad9118fa6860fd218aac3feee8e6ac6f0f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 10 Feb 2017 13:13:01 +0200 Subject: [PATCH] mail-filter: Handle handshake write() failure --- src/plugins/mail-filter/istream-ext-filter.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/mail-filter/istream-ext-filter.c b/src/plugins/mail-filter/istream-ext-filter.c index 7ca1e9ca6d..07869519ac 100644 --- a/src/plugins/mail-filter/istream-ext-filter.c +++ b/src/plugins/mail-filter/istream-ext-filter.c @@ -156,6 +156,7 @@ static int filter_connect(struct mail_filter_istream *mstream, { const char **argv; string_t *str; + ssize_t ret; int fd; argv = t_strsplit(args, " "); @@ -187,7 +188,14 @@ static int filter_connect(struct mail_filter_istream *mstream, } str_append_c(str, '\n'); - o_stream_send(mstream->ext_out, str_data(str), str_len(str)); + ret = o_stream_send(mstream->ext_out, str_data(str), str_len(str)); + if (ret < 0) { + i_error("ext-filter: write(%s) failed: %s", socket_path, + o_stream_get_error(mstream->ext_out)); + i_stream_mail_filter_close(&mstream->istream.iostream, FALSE); + return -1; + } + i_assert((size_t)ret == str_len(str)); return 0; } -- 2.47.3