summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2016-08-02 10:42:46 +0200
committerMilan Crha <mcrha@redhat.com>2016-08-02 10:42:46 +0200
commitd617d182c1bb1527807a6ce2db5edb1317e32b21 (patch)
treef9726e850dd2621a93003e34f9d3ab8a3ccea68a
parentd72a03f139d0b5d464a594e5dd8df0bdcd1ec7f8 (diff)
downloadevolution-data-server-d617d182c1bb1527807a6ce2db5edb1317e32b21.tar.gz
Bug 766346 - Incorrect times provided in e_cal_recur_generate_instances()
-rw-r--r--calendar/libecal/e-cal-recur.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/calendar/libecal/e-cal-recur.c b/calendar/libecal/e-cal-recur.c
index b2b989329..099b8f2be 100644
--- a/calendar/libecal/e-cal-recur.c
+++ b/calendar/libecal/e-cal-recur.c
@@ -197,7 +197,12 @@ ensure_timezone (icalcomponent *comp,
a different icalcomponent and cause use-after-free. */
tt->zone = NULL;
- if (tt->is_utc || tt->is_date)
+ if (tt->is_utc)
+ return TRUE;
+
+ tt->zone = default_timezone;
+
+ if (tt->is_date)
return TRUE;
if (!prop)
@@ -1256,12 +1261,12 @@ backward_compatibility_instance_cb (icalcomponent *comp,
if (bcd && bcd->cb) {
time_t istart, iend;
- if (instance_start.zone && !instance_start.is_date)
+ if (instance_start.zone)
istart = icaltime_as_timet_with_zone (instance_start, instance_start.zone);
else
istart = icaltime_as_timet (instance_start);
- if (instance_end.zone && !instance_end.is_date)
+ if (instance_end.zone)
iend = icaltime_as_timet_with_zone (instance_end, instance_end.zone);
else
iend = icaltime_as_timet (instance_end);