aboutsummaryrefslogtreecommitdiffstats
path: root/smtpd
diff options
context:
space:
mode:
authorgilles <gilles@poolp.org>2016-06-16 00:03:03 +0200
committergilles <gilles@poolp.org>2016-06-16 00:03:03 +0200
commit88ffbca77010552b6252b6759b61754c075e1f3f (patch)
tree51ee64ac7afe36329973b773efe03cbd9202d6fb /smtpd
parentMerge branch 'master' of ssh://ssh.poolp.org/git/opensmtpd (diff)
downloadOpenSMTPD-88ffbca77010552b6252b6759b61754c075e1f3f.tar.xz
OpenSMTPD-88ffbca77010552b6252b6759b61754c075e1f3f.zip
fix descriptor leak and session state in filter reject
Diffstat (limited to 'smtpd')
-rw-r--r--smtpd/CVS/Entries150
-rw-r--r--smtpd/smtp_session.c5
2 files changed, 79 insertions, 76 deletions
diff --git a/smtpd/CVS/Entries b/smtpd/CVS/Entries
index 2f97af65..b2701252 100644
--- a/smtpd/CVS/Entries
+++ b/smtpd/CVS/Entries
@@ -2,89 +2,89 @@ D/smtpctl////
D/smtpd////
/Makefile/1.15/Sun May 8 15:40:28 2016//
/aliases.5/1.12/Sun May 8 15:40:28 2016//
-/aliases.c/1.70/Wed Jun 15 19:59:40 2016//
-/bounce.c/1.72/Wed Jun 15 19:59:40 2016//
-/ca.c/1.22/Wed Jun 15 19:59:43 2016//
-/compress_backend.c/1.9/Wed Jun 15 19:59:40 2016//
-/compress_gzip.c/1.10/Wed Jun 15 19:59:40 2016//
-/config.c/1.35/Wed Jun 15 19:59:43 2016//
-/control.c/1.113/Wed Jun 15 19:59:43 2016//
-/crypto.c/1.5/Wed Jun 15 19:59:40 2016//
-/delivery.c/1.6/Wed Jun 15 19:59:40 2016//
-/delivery_filename.c/1.14/Wed Jun 15 19:59:40 2016//
-/delivery_lmtp.c/1.17/Wed Jun 15 19:59:43 2016//
-/delivery_maildir.c/1.17/Wed Jun 15 19:59:40 2016//
-/delivery_mbox.c/1.12/Wed Jun 15 19:59:40 2016//
-/delivery_mda.c/1.9/Wed Jun 15 19:59:40 2016//
-/dict.c/1.5/Wed Jun 15 19:59:40 2016//
-/dns.c/1.83/Wed Jun 15 19:59:40 2016//
-/enqueue.c/1.112/Wed Jun 15 19:59:40 2016//
-/envelope.c/1.36/Wed Jun 15 19:59:40 2016//
-/esc.c/1.4/Wed Jun 15 19:59:40 2016//
-/expand.c/1.29/Wed Jun 15 19:59:40 2016//
-/filter.c/1.18/Wed Jun 15 19:59:40 2016//
/forward.5/1.9/Sun May 8 15:40:28 2016//
-/forward.c/1.39/Wed Jun 15 19:59:40 2016//
-/iobuf.c/1.9/Wed Jun 15 19:59:40 2016//
/iobuf.h/1.4/Sun May 8 15:40:28 2016//
-/ioev.c/1.26/Wed Jun 15 19:59:40 2016//
/ioev.h/1.6/Sun May 8 16:37:15 2016//
-/limit.c/1.5/Wed Jun 15 20:00:30 2016//
-/lka.c/1.193/Wed Jun 15 19:59:43 2016//
-/lka_session.c/1.79/Wed Jun 15 19:59:40 2016//
-/log.c/1.17/Wed Jun 15 19:59:40 2016//
-/log.h/1.5/Wed Jun 15 19:59:40 2016//
-/mailaddr.c/1.2/Wed Jun 15 19:59:40 2016//
/makemap.8/1.29/Sun May 8 15:40:28 2016//
-/makemap.c/1.65/Wed Jun 15 19:59:40 2016//
-/mda.c/1.119/Wed Jun 15 19:59:40 2016//
-/mproc.c/1.20/Wed Jun 15 19:59:43 2016//
-/mta.c/1.201/Wed Jun 15 19:59:40 2016//
-/mta_session.c/1.83/Wed Jun 15 19:59:40 2016//
/newaliases.8/1.11/Sun May 8 15:40:28 2016//
-/parse.y/1.184/Wed Jun 15 19:59:40 2016//
-/parser.c/1.40/Wed Jun 15 19:59:40 2016//
/parser.h/1.29/Sun May 8 15:40:28 2016//
-/pony.c/1.13/Wed Jun 15 19:59:43 2016//
-/queue.c/1.178/Wed Jun 15 19:59:43 2016//
-/queue_backend.c/1.62/Wed Jun 15 19:59:40 2016//
-/queue_fs.c/1.14/Wed Jun 15 19:59:40 2016//
-/queue_null.c/1.6/Wed Jun 15 19:59:40 2016//
-/queue_proc.c/1.6/Wed Jun 15 19:59:40 2016//
-/queue_ram.c/1.7/Wed Jun 15 19:59:40 2016//
-/rfc2822.c/1.7/Wed Jun 15 19:59:40 2016//
/rfc2822.h/1.4/Sun May 8 15:40:28 2016//
-/ruleset.c/1.32/Wed Jun 15 19:59:40 2016//
-/runq.c/1.2/Wed Jun 15 19:59:40 2016//
-/scheduler.c/1.52/Wed Jun 15 19:59:43 2016//
-/scheduler_backend.c/1.15/Wed Jun 15 19:59:40 2016//
-/scheduler_null.c/1.9/Wed Jun 15 19:59:40 2016//
-/scheduler_proc.c/1.8/Wed Jun 15 19:59:40 2016//
-/scheduler_ramqueue.c/1.42/Wed Jun 15 19:59:40 2016//
/sendmail.8/1.4/Sun May 8 15:40:28 2016//
-/smtp.c/1.155/Wed Jun 15 19:59:40 2016//
-/smtp_session.c/1.274/Wed Jun 15 20:00:30 2016//
-/smtpctl.8/1.57/Wed Jun 15 20:00:30 2016//
-/smtpctl.c/1.149/Wed Jun 15 19:59:40 2016//
/smtpd-api.h/1.29/Sun May 8 15:40:28 2016//
-/smtpd-defines.h/1.6/Wed Jun 15 19:59:40 2016//
/smtpd.8/1.30/Sun May 8 16:37:15 2016//
-/smtpd.c/1.278/Wed Jun 15 19:59:43 2016//
-/smtpd.conf.5/1.161/Wed Jun 15 19:59:40 2016//
-/smtpd.h/1.515/Wed Jun 15 19:59:43 2016//
-/ssl.c/1.86/Wed Jun 15 19:59:40 2016//
-/ssl.h/1.20/Wed Jun 15 19:59:40 2016//
-/ssl_smtpd.c/1.13/Wed Jun 15 19:59:40 2016//
-/stat_backend.c/1.10/Wed Jun 15 19:59:40 2016//
-/stat_ramstat.c/1.10/Wed Jun 15 19:59:40 2016//
/table.5/1.5/Sun May 8 15:40:28 2016//
-/table.c/1.23/Wed Jun 15 19:59:40 2016//
-/table_api.c/1.8/Wed Jun 15 19:59:40 2016//
-/table_db.c/1.9/Wed Jun 15 19:59:40 2016//
-/table_getpwnam.c/1.4/Wed Jun 15 19:59:40 2016//
-/table_proc.c/1.6/Wed Jun 15 19:59:40 2016//
-/table_static.c/1.15/Wed Jun 15 19:59:40 2016//
-/to.c/1.28/Wed Jun 15 19:59:43 2016//
-/tree.c/1.5/Wed Jun 15 19:59:40 2016//
-/util.c/1.127/Wed Jun 15 19:59:40 2016//
-/waitq.c/1.5/Wed Jun 15 19:59:40 2016//
+/aliases.c/1.70/Wed Jun 15 21:58:52 2016//
+/bounce.c/1.72/Wed Jun 15 21:58:52 2016//
+/ca.c/1.22/Wed Jun 15 21:58:52 2016//
+/compress_backend.c/1.9/Wed Jun 15 21:58:52 2016//
+/compress_gzip.c/1.10/Wed Jun 15 21:58:52 2016//
+/config.c/1.35/Wed Jun 15 21:58:52 2016//
+/control.c/1.113/Wed Jun 15 21:58:52 2016//
+/crypto.c/1.5/Wed Jun 15 21:58:52 2016//
+/delivery.c/1.6/Wed Jun 15 21:58:52 2016//
+/delivery_filename.c/1.14/Wed Jun 15 21:58:52 2016//
+/delivery_lmtp.c/1.17/Wed Jun 15 21:58:52 2016//
+/delivery_maildir.c/1.17/Wed Jun 15 21:58:52 2016//
+/delivery_mbox.c/1.12/Wed Jun 15 21:58:52 2016//
+/delivery_mda.c/1.9/Wed Jun 15 21:58:52 2016//
+/dict.c/1.5/Wed Jun 15 21:58:52 2016//
+/dns.c/1.83/Wed Jun 15 21:58:52 2016//
+/enqueue.c/1.112/Wed Jun 15 21:58:52 2016//
+/envelope.c/1.36/Wed Jun 15 21:58:52 2016//
+/esc.c/1.4/Wed Jun 15 21:58:52 2016//
+/expand.c/1.29/Wed Jun 15 21:58:52 2016//
+/filter.c/1.18/Wed Jun 15 21:58:52 2016//
+/forward.c/1.39/Wed Jun 15 21:58:52 2016//
+/iobuf.c/1.9/Wed Jun 15 21:58:52 2016//
+/ioev.c/1.26/Wed Jun 15 21:58:52 2016//
+/limit.c/1.5/Wed Jun 15 21:58:52 2016//
+/lka.c/1.193/Wed Jun 15 21:58:52 2016//
+/lka_session.c/1.79/Wed Jun 15 21:58:52 2016//
+/log.c/1.17/Wed Jun 15 21:58:52 2016//
+/log.h/1.5/Wed Jun 15 21:58:52 2016//
+/mailaddr.c/1.2/Wed Jun 15 21:58:52 2016//
+/makemap.c/1.65/Wed Jun 15 21:58:52 2016//
+/mda.c/1.119/Wed Jun 15 21:58:52 2016//
+/mproc.c/1.20/Wed Jun 15 21:58:52 2016//
+/mta.c/1.201/Wed Jun 15 21:58:52 2016//
+/mta_session.c/1.83/Wed Jun 15 21:58:52 2016//
+/parse.y/1.184/Wed Jun 15 21:58:52 2016//
+/parser.c/1.40/Wed Jun 15 21:58:52 2016//
+/pony.c/1.13/Wed Jun 15 21:58:52 2016//
+/queue.c/1.178/Wed Jun 15 21:58:52 2016//
+/queue_backend.c/1.62/Wed Jun 15 21:58:52 2016//
+/queue_fs.c/1.14/Wed Jun 15 21:58:52 2016//
+/queue_null.c/1.6/Wed Jun 15 21:58:52 2016//
+/queue_proc.c/1.6/Wed Jun 15 21:58:52 2016//
+/queue_ram.c/1.7/Wed Jun 15 21:58:52 2016//
+/rfc2822.c/1.7/Wed Jun 15 21:58:52 2016//
+/ruleset.c/1.32/Wed Jun 15 21:58:52 2016//
+/runq.c/1.2/Wed Jun 15 21:58:52 2016//
+/scheduler.c/1.52/Wed Jun 15 21:58:52 2016//
+/scheduler_backend.c/1.15/Wed Jun 15 21:58:52 2016//
+/scheduler_null.c/1.9/Wed Jun 15 21:58:52 2016//
+/scheduler_proc.c/1.8/Wed Jun 15 21:58:52 2016//
+/scheduler_ramqueue.c/1.42/Wed Jun 15 21:58:52 2016//
+/smtp.c/1.155/Wed Jun 15 21:58:52 2016//
+/smtp_session.c/1.275/Wed Jun 15 22:02:56 2016//
+/smtpctl.8/1.57/Wed Jun 15 20:01:45 2016//
+/smtpctl.c/1.149/Wed Jun 15 21:58:52 2016//
+/smtpd-defines.h/1.6/Wed Jun 15 21:58:52 2016//
+/smtpd.c/1.278/Wed Jun 15 21:58:52 2016//
+/smtpd.conf.5/1.161/Wed Jun 15 21:58:52 2016//
+/smtpd.h/1.515/Wed Jun 15 21:58:52 2016//
+/ssl.c/1.86/Wed Jun 15 21:58:52 2016//
+/ssl.h/1.20/Wed Jun 15 21:58:52 2016//
+/ssl_smtpd.c/1.13/Wed Jun 15 21:58:52 2016//
+/stat_backend.c/1.10/Wed Jun 15 21:58:52 2016//
+/stat_ramstat.c/1.10/Wed Jun 15 21:58:52 2016//
+/table.c/1.23/Wed Jun 15 21:58:52 2016//
+/table_api.c/1.8/Wed Jun 15 21:58:52 2016//
+/table_db.c/1.9/Wed Jun 15 21:58:52 2016//
+/table_getpwnam.c/1.4/Wed Jun 15 21:58:53 2016//
+/table_proc.c/1.6/Wed Jun 15 21:58:53 2016//
+/table_static.c/1.15/Wed Jun 15 21:58:53 2016//
+/to.c/1.28/Wed Jun 15 21:58:53 2016//
+/tree.c/1.5/Wed Jun 15 21:58:53 2016//
+/util.c/1.127/Wed Jun 15 21:58:53 2016//
+/waitq.c/1.5/Wed Jun 15 21:58:53 2016//
diff --git a/smtpd/smtp_session.c b/smtpd/smtp_session.c
index 2be0c004..559cf408 100644
--- a/smtpd/smtp_session.c
+++ b/smtpd/smtp_session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtp_session.c,v 1.274 2016/06/15 19:56:07 gilles Exp $ */
+/* $OpenBSD: smtp_session.c,v 1.275 2016/06/15 21:52:47 eric Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -1150,9 +1150,12 @@ smtp_filter_response(uint64_t id, int query, int status, uint32_t code,
if (status != FILTER_OK) {
tree_pop(&wait_filter_data, s->id);
smtp_filter_rollback(s);
+ smtp_queue_rollback(s);
code = code ? code : 530;
line = line ? line : "Message rejected";
smtp_reply(s, "%d %s", code, line);
+ smtp_message_reset(s, 0);
+ smtp_enter_state(s, STATE_HELO);
io_reload(&s->io);
return;
}