changeset 266:582cfb9c4031 stable-6-0-33

fix unauthenticated rate limit bug for empty mail from
author Carl Byington <carl@five-ten-sg.com>
date Sat, 21 Jul 2012 13:05:54 -0700
parents 89578e4f9c87
children db12f6028f8b
files src/context.cpp src/dnsbl.cpp
diffstat 2 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/context.cpp	Sat Jul 21 12:47:19 2012 -0700
+++ b/src/context.cpp	Sat Jul 21 13:05:54 2012 -0700
@@ -854,10 +854,10 @@
 
 
 bool CONTEXT::is_unauthenticated_limited(const char *user) {
-    if (!user) return false;
     rcpt_rates::iterator i = rcpt_per_hour.find(user);  // look for sender user@email limiting
     if (i != rcpt_per_hour.end()) return true;          // found user@email limiting
     const char *f = strchr(user, '@');
+    if (!f) return false;
     i = rcpt_per_hour.find(f);                  // look for sender @domain limiting
     return (i != rcpt_per_hour.end());          // found @domain limiting
 }
--- a/src/dnsbl.cpp	Sat Jul 21 12:47:19 2012 -0700
+++ b/src/dnsbl.cpp	Sat Jul 21 13:05:54 2012 -0700
@@ -1051,11 +1051,13 @@
 //
 const char *to_lower_string(const char *email);
 const char *to_lower_string(const char *email) {
+    if (!email) return strdup("<>");
     int n = strlen(email);
+    if (n == 0) return strdup("<>");
     if (email[0] == '<') {
         // assume it also ends with >
         n -= 2;
-        if (n < 1) return strdup(email);    // return "<>"
+        if (n < 1) return strdup("<>");
         email++;
     }
     if ((email[0] == '\'') && (email[n-1] == '\'') && (n > 2)) {