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