diff options
-rw-r--r-- | mail/ChangeLog | 5 | ||||
-rw-r--r-- | mail/mail-local.c | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 6d4483cac2..add8de5393 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,8 @@ +2001-02-03 Michael Meeks <michael@helixcode.com> + + * mail-local.c (load_metainfo): Fix dodgy libxml allocation + pollution, and potential faults on NULL attributes. + 2001-02-02 Not Zed <NotZed@Ximian.com> * mail-send-recv.c (mail_send_receive): Cleaned up so we dont add diff --git a/mail/mail-local.c b/mail/mail-local.c index 22df0333d1..96e8b6c037 100644 --- a/mail/mail-local.c +++ b/mail/mail-local.c @@ -97,9 +97,16 @@ load_metainfo(const char *path) node = node->childs; while (node) { if (!strcmp(node->name, "folder")) { - char *index; - meta->format = xmlGetProp(node, "type"); - meta->name = xmlGetProp(node, "name"); + char *index, *txt; + + txt = xmlGetProp(node, "type"); + meta->format = g_strdup (txt ? txt : "mbox"); + xmlFree (txt); + + txt = xmlGetProp(node, "name"); + meta->name = g_strdup (txt ? txt : "mbox"); + xmlFree (txt); + index = xmlGetProp(node, "index"); if (index) { meta->indexed = atoi(index); |