From: Timo Sirainen Date: Fri, 10 Feb 2017 11:13:01 +0000 (+0200) Subject: mail-filter: Handle handshake write() failure X-Git-Tag: 2.3.0.rc1~2143 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7f51c1ad9118fa6860fd218aac3feee8e6ac6f0f;p=thirdparty%2Fdovecot%2Fcore.git mail-filter: Handle handshake write() failure --- 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; }