summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@freedesktop.org>2015-04-17 18:28:20 +0200
committerDebarshi Ray <debarshir@gnome.org>2015-04-28 18:46:09 +0200
commit711842911edb15977430c0b6c1803e947619efc3 (patch)
tree27bc93f06e24c2d2abac1e1d5e5df305b786f204
parent1d35d990cc2c925a2842cf121f4ff3a3ce5c195a (diff)
downloadtelepathy-logger-711842911edb15977430c0b6c1803e947619efc3.tar.gz
log-iter-xml: Fix crash when logs are corrupted or invalid XML
Chances of _tpl_log_store_get_events_for_date returning NULL due to an invalid XML file are lower because we ask libxml2 (since commit 734af80691) to recover from errors if possible. Even then, it doesn't hurt to defend against this eventuality. Thanks to Daniel Thompson for catching this! https://bugs.freedesktop.org/show_bug.cgi?id=89595
-rw-r--r--telepathy-logger/log-iter-xml.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/telepathy-logger/log-iter-xml.c b/telepathy-logger/log-iter-xml.c
index 1684a74..df531e4 100644
--- a/telepathy-logger/log-iter-xml.c
+++ b/telepathy-logger/log-iter-xml.c
@@ -81,8 +81,12 @@ tpl_log_iter_xml_get_events (TplLogIter *iter,
priv->account, priv->target, priv->type_mask,
(GDate *) priv->next_date->data);
- priv->next_event = g_list_last (priv->events);
priv->next_date = g_list_previous (priv->next_date);
+
+ if (priv->events == NULL)
+ continue;
+
+ priv->next_event = g_list_last (priv->events);
}
event = TPL_EVENT (priv->next_event->data);