From: Vsevolod Stakhov Date: Fri, 22 Nov 2019 15:49:28 +0000 (+0000) Subject: [Minor] Terminate milter session on IO errors X-Git-Tag: 2.3~311 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2eff88401aaac1a94a6e97ffdfdd1aaa7f53c041;p=thirdparty%2Frspamd.git [Minor] Terminate milter session on IO errors Issue: #3149 --- diff --git a/src/libserver/milter.c b/src/libserver/milter.c index e97b0381ec..1b24fa3dae 100644 --- a/src/libserver/milter.c +++ b/src/libserver/milter.c @@ -955,6 +955,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, if (r == -1) { if (errno == EAGAIN || errno == EINTR) { rspamd_milter_plan_io (session, priv, EV_READ); + + return TRUE; } else { /* Fatal IO error */ @@ -964,6 +966,10 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, priv->err_cb (priv->fd, session, priv->ud, err); REF_RELEASE (session); g_error_free (err); + + REF_RELEASE (session); + + return FALSE; } } else if (r == 0) { @@ -973,6 +979,10 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, priv->err_cb (priv->fd, session, priv->ud, err); REF_RELEASE (session); g_error_free (err); + + REF_RELEASE (session); + + return FALSE; } else { priv->parser.buf->len += r; @@ -1023,6 +1033,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, REF_RELEASE (session); g_error_free (err); + REF_RELEASE (session); + return FALSE; } } @@ -1034,6 +1046,8 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, REF_RELEASE (session); g_error_free (err); + REF_RELEASE (session); + return FALSE; } else {