diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-02-26 16:48:40 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-02-26 16:48:40 +0000 |
commit | 02e57d35421af7d1457c974447ce8a44c9dbbcf6 (patch) | |
tree | 2fdf234b119f8c4b18d033a59343968bd8bacb11 /src/libserver/url.c | |
parent | 345eac2dbab087a190459e9062b30602e4e4e876 (diff) | |
download | rspamd-02e57d35421af7d1457c974447ce8a44c9dbbcf6.tar.gz rspamd-02e57d35421af7d1457c974447ce8a44c9dbbcf6.zip |
Fix emails parser.
Diffstat (limited to 'src/libserver/url.c')
-rw-r--r-- | src/libserver/url.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libserver/url.c b/src/libserver/url.c index 1f1efae37..87d235966 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -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 ++; |