#ifdef GMIME24
for (i = 0; i < num; i++) {
addr = internet_address_list_get_address (cur, i);
- ar[i].name = internet_address_mailbox_get_addr (
- INTERNET_ADDRESS_MAILBOX (addr));
- if (ar[i].name != NULL && (c = strchr (ar[i].name, '@')) != NULL) {
- ar[i].addr = c + 1;
+ InternetAddress *iaelt =
+ internet_address_list_get_address(cur, i);
+ InternetAddressMailbox *iamb =
+ INTERNET_ADDRESS_IS_MAILBOX(iaelt) ?
+ INTERNET_ADDRESS_MAILBOX (iaelt) : NULL;
+ if (iamb) {
+ ar[i].name = internet_address_mailbox_get_addr (iamb);
+ if (ar[i].name != NULL && (c = strchr (ar[i].name, '@')) != NULL) {
+ ar[i].addr = c + 1;
+ }
}
}
#else
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);
}
else {
if (ia != NULL) {
for (i = 0; i < internet_address_list_length(ia); i ++) {
+ InternetAddress *iaelt =
+ internet_address_list_get_address(ia, i);
InternetAddressMailbox *iamb =
- INTERNET_ADDRESS_MAILBOX (
- internet_address_list_get_address(ia, i));
+ INTERNET_ADDRESS_IS_MAILBOX(iaelt) ?
+ INTERNET_ADDRESS_MAILBOX (iaelt) : NULL;
if (iamb &&
match_smtp_data (task, arg->data,
internet_address_mailbox_get_addr(iamb))) {
else {
if (ia != NULL) {
for (i = 0; i < internet_address_list_length(ia); i ++) {
+ InternetAddress *iaelt =
+ internet_address_list_get_address(ia, i);
InternetAddressMailbox *iamb =
- INTERNET_ADDRESS_MAILBOX (
- internet_address_list_get_address(ia, i));
+ INTERNET_ADDRESS_IS_MAILBOX(iaelt) ?
+ INTERNET_ADDRESS_MAILBOX (iaelt) : NULL;
if (iamb &&
process_regexp_expression (arg->data,
"regexp_check_smtp_data", task,