]> diplodocus.org Git - nmh/commitdiff
Reject email addresses which contain 8-bit characters.
authorKen Hornstein <kenh@pobox.com>
Mon, 1 Jul 2013 19:44:22 +0000 (15:44 -0400)
committerKen Hornstein <kenh@pobox.com>
Mon, 1 Jul 2013 19:44:22 +0000 (15:44 -0400)
sbr/mf.c

index 6adbba7..0336093 100644 (file)
--- a/sbr/mf.c
+++ b/sbr/mf.c
@@ -21,6 +21,7 @@ static int local_part (char *);
 static int domain (char *);
 static int route (char *);
 static int my_lex (char *);
+static int contains8bit (const char *);
 
 
 int
@@ -230,6 +231,15 @@ getadrx (const char *addrs)
            break;
        }
 
+    /*
+     * Reject the address if key fields contain 8bit characters
+     */
+
+    if (contains8bit(mbox) || contains8bit(host) || contains8bit(path) ||
+       contains8bit(grp)) {
+       strcpy(err, "Address contains 8-bit characters");
+    }
+
     if (err[0])
        for (;;) {
            switch (last_lex) {
@@ -718,6 +728,25 @@ got_atom: ;
 }
 
 
+/*
+ * Return true if the string contains an 8-bit character
+ */
+
+static int
+contains8bit(const char *p)
+{
+    if (! p)
+       return 0;
+
+    for (; *p; p++) {
+       if (! isascii(*p))
+           return 1;
+    }
+
+    return 0;
+}
+
+
 char *
 legal_person (const char *p)
 {