diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-09-09 15:37:14 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-09-09 15:37:14 +0100 |
commit | 983883f45b57c8772256c68d6dbd51539f80e654 (patch) | |
tree | 0a13dfabd38eb8c4868cb9b7216849c7a62b81a3 /src/libserver | |
parent | 5f1db5390c4db96d4a1bc595b91ecb11cb368911 (diff) | |
download | rspamd-983883f45b57c8772256c68d6dbd51539f80e654.tar.gz rspamd-983883f45b57c8772256c68d6dbd51539f80e654.zip |
More fixes to emails parsing.
Diffstat (limited to 'src/libserver')
-rw-r--r-- | src/libserver/url.c | 116 |
1 files changed, 49 insertions, 67 deletions
diff --git a/src/libserver/url.c b/src/libserver/url.c index 5a22a25e1..c934cd174 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -179,7 +179,7 @@ static const unsigned int url_scanner_table[256] = { IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* 6 */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* 7 */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* 8 */, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* 9 */, IS_DOMAIN_END|IS_MAILSAFE /* : */, + IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* 9 */, IS_DOMAIN_END /* : */, IS_MAILSAFE /* ; */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* < */, 0 /* = */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* > */, IS_DOMAIN_END /* ? */, 0 /* @ */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* A */, @@ -241,72 +241,50 @@ static const unsigned int url_scanner_table[256] = { IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* { */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* | */, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* } */, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* ~ */, - 0, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE, - IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE + IS_URLSAFE|IS_DOMAIN|IS_MAILSAFE /* ~ */, 0, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, IS_URLSAFE|IS_DOMAIN, + IS_URLSAFE|IS_DOMAIN }; #define is_lwsp(x) ((url_scanner_table[(guchar)(x)] & IS_LWSP) != 0) @@ -1647,6 +1625,10 @@ url_email_end (struct url_callback_data *cb, p --; } + if (g_ascii_isalnum (*p)) { + p ++; + } + if (p > c) { match->m_begin = c; match->m_len = p - c; |