aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog5
-rw-r--r--mail/mail-autofilter.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index d3e02d4c2f..56b3d6446e 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,10 @@
2005-01-31 Not Zed <NotZed@Ximian.com>
+ ** See bug #69850
+
+ * mail-autofilter.c (rule_from_message): dont crash if we're
+ missing the requested headers.
+
** See bug #71521.
* em-account-editor.c (emae_url_set_hostport): dont ever set a
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index c660a03204..fe48b1777a 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -247,8 +247,8 @@ rule_from_message (FilterRule *rule, RuleContext *context, CamelMimeMessage *msg
char *namestr;
from = camel_mime_message_get_from (msg);
- for (i = 0; camel_internet_address_get (from, i, &name, &addr); i++) {
- rule_add_sender (context, rule, addr);
+ for (i = 0; from && camel_internet_address_get (from, i, &name, &addr); i++) {
+ rule_add_sender(context, rule, addr);
if (name == NULL || name[0] == '\0')
name = addr;
namestr = g_strdup_printf(_("Mail from %s"), name);
@@ -258,9 +258,11 @@ rule_from_message (FilterRule *rule, RuleContext *context, CamelMimeMessage *msg
}
if (flags & AUTO_TO) {
addr = (CamelInternetAddress *)camel_mime_message_get_recipients (msg, CAMEL_RECIPIENT_TYPE_TO);
- rule_match_recipients (context, rule, addr);
+ if (addr)
+ rule_match_recipients (context, rule, addr);
addr = (CamelInternetAddress *)camel_mime_message_get_recipients (msg, CAMEL_RECIPIENT_TYPE_CC);
- rule_match_recipients (context, rule, addr);
+ if (addr)
+ rule_match_recipients (context, rule, addr);
}
if (flags & AUTO_MLIST) {
char *name, *mlist;