diff options
author | gilles <gilles@poolp.org> | 2016-06-16 00:03:03 +0200 |
---|---|---|
committer | gilles <gilles@poolp.org> | 2016-06-16 00:03:03 +0200 |
commit | 88ffbca77010552b6252b6759b61754c075e1f3f (patch) | |
tree | 51ee64ac7afe36329973b773efe03cbd9202d6fb /smtpd | |
parent | Merge branch 'master' of ssh://ssh.poolp.org/git/opensmtpd (diff) | |
download | OpenSMTPD-88ffbca77010552b6252b6759b61754c075e1f3f.tar.xz OpenSMTPD-88ffbca77010552b6252b6759b61754c075e1f3f.zip |
fix descriptor leak and session state in filter reject
Diffstat (limited to 'smtpd')
-rw-r--r-- | smtpd/CVS/Entries | 150 | ||||
-rw-r--r-- | smtpd/smtp_session.c | 5 |
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; } |