From 5f4c5f5cbeea6cb2d04c34716160a5425bb5784a Mon Sep 17 00:00:00 2001 From: Elias Entrup Date: Tue, 6 Feb 2018 12:25:47 +0100 Subject: [PATCH] event-widget: Handle NULL in event sorting The application crashes when e_cal_component_get_last_modified returns NULL which is used for sorting events. --- src/gcal-event-widget.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/gcal-event-widget.c b/src/gcal-event-widget.c index ba7b7f75..903d24dd 100644 --- a/src/gcal-event-widget.c +++ b/src/gcal-event-widget.c @@ -18,8 +18,9 @@ #define G_LOG_DOMAIN "GcalEventWidget" -#include +#include #include +#include #include "gcal-event-widget.h" #include "gcal-utils.h" @@ -1167,11 +1168,11 @@ gint gcal_event_widget_sort_events (GcalEventWidget *widget1, GcalEventWidget *widget2) { - g_autoptr (GDateTime) dt_time1, dt_time2; + g_autoptr (GDateTime) dt_time1 = NULL; + g_autoptr (GDateTime) dt_time2 = NULL; icaltimetype *ical_dt; gint diff; - dt_time1 = dt_time2 = NULL; diff = gcal_event_is_multiday (widget2->event) - gcal_event_is_multiday (widget1->event); if (diff != 0) @@ -1188,10 +1189,12 @@ gcal_event_widget_sort_events (GcalEventWidget *widget1, return diff; e_cal_component_get_last_modified (gcal_event_get_component (widget1->event), &ical_dt); - dt_time1 = icaltime_to_datetime (ical_dt); + if (ical_dt) + dt_time1 = icaltime_to_datetime (ical_dt); e_cal_component_get_last_modified (gcal_event_get_component (widget2->event), &ical_dt); - dt_time2 = icaltime_to_datetime (ical_dt); + if (ical_dt) + dt_time2 = icaltime_to_datetime (ical_dt); - return g_date_time_compare (dt_time2, dt_time1); + return dt_time1 && dt_time2 ? g_date_time_compare (dt_time2, dt_time1) : 0; }