diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-10-01 12:04:33 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-10-01 12:04:33 +0100 |
commit | 56d73d7a1826d016a96b6ca374d43b80dce72c60 (patch) | |
tree | 01246e36eb6d5a2901588f8f99cf647fe504fadc /src/libserver | |
parent | 7a83d76dc12389438bbe3b0b29cc82b7740a3796 (diff) | |
download | rspamd-56d73d7a1826d016a96b6ca374d43b80dce72c60.tar.gz rspamd-56d73d7a1826d016a96b6ca374d43b80dce72c60.zip |
Check type of InternetAddress.
Diffstat (limited to 'src/libserver')
-rw-r--r-- | src/libserver/task.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/libserver/task.c b/src/libserver/task.c index 5eaa620fc..2cec9cb3a 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -350,16 +350,18 @@ rspamd_task_process (struct rspamd_task *task, const gchar * rspamd_task_get_sender (struct rspamd_task *task) { - InternetAddressMailbox *imb = NULL; + InternetAddressMailbox *imb; + InternetAddress *iaelt = NULL; + if (task->from_envelope != NULL) { - imb = INTERNET_ADDRESS_MAILBOX(internet_address_list_get_address ( - task->from_envelope, 0)); + iaelt = internet_address_list_get_address (task->from_envelope, 0); } else if (task->from_mime != NULL) { - imb = INTERNET_ADDRESS_MAILBOX(internet_address_list_get_address ( - task->from_mime, 0)); + iaelt = internet_address_list_get_address (task->from_mime, 0); } + imb = INTERNET_ADDRESS_IS_MAILBOX(iaelt) ? + INTERNET_ADDRESS_MAILBOX (iaelt) : NULL; - return internet_address_mailbox_get_addr (imb); + return (imb ? internet_address_mailbox_get_addr (imb) : NULL); } |