diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-02 17:44:25 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-02 17:44:25 +0000 |
commit | 2e5ea6656041f61c5a2091878be439c63947b1cc (patch) | |
tree | c4c9df7715c3098455fde7c3815671612669f563 /src/libmime | |
parent | ece601117f3aeb020faf80a307d54ef356411bd0 (diff) | |
download | rspamd-2e5ea6656041f61c5a2091878be439c63947b1cc.tar.gz rspamd-2e5ea6656041f61c5a2091878be439c63947b1cc.zip |
Try to fix bloody SORTED_RECIPS rule
Issue: #437
Diffstat (limited to 'src/libmime')
-rw-r--r-- | src/libmime/mime_expressions.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index 8f3f6d041..ab685b2c0 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -1384,6 +1384,7 @@ is_recipient_list_sorted (const InternetAddressList * ia) { const InternetAddressList *cur; InternetAddress *addr; + InternetAddressMailbox *addr_mb; gboolean res = TRUE; struct addr_list current = { NULL, NULL }, previous = { NULL, NULL @@ -1403,10 +1404,14 @@ is_recipient_list_sorted (const InternetAddressList * ia) for (i = 0; i < num; i++) { addr = internet_address_list_get_address ((InternetAddressList *)cur, i); - current.addr = (gchar *)internet_address_get_name (addr); + if (INTERNET_ADDRESS_IS_MAILBOX (addr)) { + addr_mb = INTERNET_ADDRESS_MAILBOX (addr); + current.addr = (gchar *) internet_address_mailbox_get_addr (addr_mb); + } + if (previous.addr != NULL) { if (current.addr && - g_ascii_strcasecmp (current.addr, previous.addr) < 0) { + g_ascii_strcasecmp (current.addr, previous.addr) <= 0) { res = FALSE; break; } |