aboutsummaryrefslogtreecommitdiffstats
path: root/src/smtp.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-28 15:59:46 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-28 15:59:46 +0400
commit5ccf33a801653b08244323e65723991c4c38ed0d (patch)
tree0558875e1e40f06fa1676ba274e6aacb541b396b /src/smtp.c
parent2581146ee7c9433c80e2c4ab5370b7fde966e4f1 (diff)
downloadrspamd-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.c6
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);
}