# HG changeset patch # User carl # Date 1197075581 28800 # Node ID 797299e9fffc642db44e750c67358c55ecea0b57 # Parent 688ec12a3c0ce15e79e0c07afffbe2ab0a21de63 fix null dereference if missing _ macro diff -r 688ec12a3c0c -r 797299e9fffc AUTHORS --- a/AUTHORS Sun Nov 11 13:21:48 2007 -0800 +++ b/AUTHORS Fri Dec 07 16:59:41 2007 -0800 @@ -8,3 +8,4 @@ Jeff Evans G.W. Haywood Georg C. F. Greve - spamassassin milter + Hewitt, Ivor diff -r 688ec12a3c0c -r 797299e9fffc ChangeLog --- a/ChangeLog Sun Nov 11 13:21:48 2007 -0800 +++ b/ChangeLog Fri Dec 07 16:59:41 2007 -0800 @@ -1,5 +1,9 @@ $Id$ +6.15 2007-12-07 + Fix null pointer dereference if macro _ not passed to this milter. + Default sendmail config passes that in the connect call. + 6.14 2007-11-11 Delay auto whitelisting until we see the headers, to prevent auto whitelisting due to bulk out of office reply bots. diff -r 688ec12a3c0c -r 797299e9fffc NEWS --- a/NEWS Sun Nov 11 13:21:48 2007 -0800 +++ b/NEWS Fri Dec 07 16:59:41 2007 -0800 @@ -1,6 +1,7 @@ $Id$ -6.13 2007-11-10 Don't autowhitelist due to out of office reply bots. +6.15 2007-12-07 Fix null pointer dereference if macro _ not passed to this milter. +6.14 2007-11-10 Don't autowhitelist due to out of office reply bots. 6.13 2007-11-10 Fix null pointer dereference on missing HELO command. 6.12 2007-10-13 SMTP rejections take precedence over greylisting. 6.11 2007-10-07 Add DCC filtering via dccifd. Fix static buffer referenced by multiple threads. diff -r 688ec12a3c0c -r 797299e9fffc configure.in --- a/configure.in Sun Nov 11 13:21:48 2007 -0800 +++ b/configure.in Fri Dec 07 16:59:41 2007 -0800 @@ -1,6 +1,6 @@ AC_PREREQ(2.59) -AC_INIT(dnsbl,6.14,carl@five-ten-sg.com) +AC_INIT(dnsbl,6.15,carl@five-ten-sg.com) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADER([config.h]) diff -r 688ec12a3c0c -r 797299e9fffc src/context.cpp --- a/src/context.cpp Sun Nov 11 13:21:48 2007 -0800 +++ b/src/context.cpp Fri Dec 07 16:59:41 2007 -0800 @@ -486,10 +486,7 @@ if (when < limit) { char *who = (*i).first; free(who); - autowhite_sent::iterator j = i; - j++; - rcpts.erase(i); - i = j; + rcpts.erase(i++); need = true; } else i++; @@ -756,6 +753,7 @@ char *CONTEXT::generic_match(char *client) { + if (!client) return NULL; // allow missing _ macro, which will disable generic checking if (parent && !generic_regx) return parent->generic_match(client); if (!generic_regx) return NULL; if (0 == regexec(&generic_pattern, client, 0, NULL, 0)) {