Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/gnu/dist/postfix/src/smtpd Apply fix from Wietse:
details: https://anonhg.NetBSD.org/src/rev/3445fa307050
branches: trunk
changeset: 517593:3445fa307050
user: christos <christos%NetBSD.org@localhost>
date: Thu Nov 15 18:18:51 2001 +0000
description:
Apply fix from Wietse:
The Postfix SMTP server maintains a record of SMTP conversations
for debugging purposes. Depending on local configuration details
this record is mailed to the postmaster whenever an SMTP session
terminates with errors.
During code maintenance, a stupid error was introduced into the
code due to which the SMTP session log could grow to an unreasonable
size. This stupid error made Postfix vulnerable to a memory
exhaustion attack.
diffstat:
gnu/dist/postfix/src/smtpd/smtpd.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diffs (21 lines):
diff -r 44d5b4f0db01 -r 3445fa307050 gnu/dist/postfix/src/smtpd/smtpd.c
--- a/gnu/dist/postfix/src/smtpd/smtpd.c Thu Nov 15 18:06:11 2001 +0000
+++ b/gnu/dist/postfix/src/smtpd/smtpd.c Thu Nov 15 18:18:51 2001 +0000
@@ -988,6 +988,17 @@
state->where = SMTPD_AFTER_DOT;
/*
+ * Notify the postmaster if there were errors. This usually indicates a
+ * client configuration problem, or that someone is trying nasty things.
+ * Either is significant enough to bother the postmaster. XXX Can't
+ * report problems when running in stand-alone mode: postmaster notices
+ * require availability of the cleanup service.
+ */
+ if (state->history != 0 && state->client != VSTREAM_IN
+ && (state->error_mask & state->notify_mask))
+ smtpd_chat_notify(state);
+ smtpd_chat_reset(state);
+ /*
* Cleanup. The client may send another MAIL command.
*/
mail_reset(state);
Home |
Main Index |
Thread Index |
Old Index