summaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-02 17:44:25 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-02 17:44:25 +0000
commit2e5ea6656041f61c5a2091878be439c63947b1cc (patch)
treec4c9df7715c3098455fde7c3815671612669f563 /src/libmime
parentece601117f3aeb020faf80a307d54ef356411bd0 (diff)
downloadrspamd-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.c9
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;
}