]> source.dussan.org Git - rspamd.git/commitdiff
Fix emails parser.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 26 Feb 2015 16:48:40 +0000 (16:48 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 26 Feb 2015 17:18:29 +0000 (17:18 +0000)
src/libserver/url.c

index 1f1efae37ff31282cc60c70d934c86417e87ade6..87d23596672af5f45c5dfe42eda8ec182e479bc7 100644 (file)
@@ -732,6 +732,7 @@ enum {
 #define is_lwsp(x) ((url_scanner_table[(guchar)(x)] & IS_LWSP) != 0)
 #define is_atom(x) ((url_scanner_table[(guchar)(x)] & (IS_SPECIAL | IS_SPACE | \
        IS_CTRL)) == 0)
+#define is_usersafe(x) ((url_scanner_table[(guchar)(x)] & (IS_CTRL | IS_SPACE)) == 0)
 #define is_alpha(x) ((url_scanner_table[(guchar)(x)] & IS_ALPHA) != 0)
 #define is_digit(x) ((url_scanner_table[(guchar)(x)] & IS_DIGIT) != 0)
 #define is_domain(x) ((url_scanner_table[(guchar)(x)] & IS_DOMAIN) != 0)
@@ -981,7 +982,7 @@ rspamd_mailto_parse (struct http_parser_url *u, const gchar *str, gsize len,
                                SET_U (u, UF_USERINFO);
                                st = parse_at;
                        }
-                       else if (!is_atom (t)) {
+                       else if (!is_usersafe (t)) {
                                goto out;
                        }
                        p ++;