diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-06-28 15:59:46 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-06-28 15:59:46 +0400 |
commit | 5ccf33a801653b08244323e65723991c4c38ed0d (patch) | |
tree | 0558875e1e40f06fa1676ba274e6aacb541b396b /src/smtp.c | |
parent | 2581146ee7c9433c80e2c4ab5370b7fde966e4f1 (diff) | |
download | rspamd-5ccf33a801653b08244323e65723991c4c38ed0d.tar.gz rspamd-5ccf33a801653b08244323e65723991c4c38ed0d.zip |
* Fix reconfigure process of surbl module
* Fix destroying smtp session (unmap memory and do not delete pool early)
Diffstat (limited to 'src/smtp.c')
-rw-r--r-- | src/smtp.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/smtp.c b/src/smtp.c index 1b95a52bb..4f1bfaa19 100644 --- a/src/smtp.c +++ b/src/smtp.c @@ -85,6 +85,9 @@ free_smtp_session (gpointer arg) if (session) { if (session->task) { free_task (session->task, FALSE); + if (session->task->msg->begin) { + munmap (session->task->msg->begin, session->task->msg->len); + } } if (session->rcpt) { g_list_free (session->rcpt); @@ -92,7 +95,6 @@ free_smtp_session (gpointer arg) if (session->dispatcher) { rspamd_remove_dispatcher (session->dispatcher); } - memory_pool_delete (session->pool); close (session->sock); if (session->temp_name != NULL) { unlink (session->temp_name); @@ -100,6 +102,7 @@ free_smtp_session (gpointer arg) if (session->temp_fd != -1) { close (session->temp_fd); } + memory_pool_delete (session->pool); g_free (session); } } @@ -400,6 +403,7 @@ process_smtp_data (struct smtp_session *session) } } else { + session->task = NULL; return smtp_send_upstream_message (session); } |