From 56d73d7a1826d016a96b6ca374d43b80dce72c60 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 1 Oct 2014 12:04:33 +0100 Subject: Check type of InternetAddress. --- src/libserver/task.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/libserver') 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); } -- cgit v1.2.3