[gnome-calendar/gnome-3-36] timeline: Protect against NULL arrays



commit 93092ea94bc5c67f0bee249c6992308859e30c6f
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Apr 15 20:49:47 2020 -0300

    timeline: Protect against NULL arrays

 src/core/gcal-timeline.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/src/core/gcal-timeline.c b/src/core/gcal-timeline.c
index 0b23b335..6065938f 100644
--- a/src/core/gcal-timeline.c
+++ b/src/core/gcal-timeline.c
@@ -271,9 +271,6 @@ calculate_changed_events (GcalTimeline            *self,
   gint range_diff;
   gint i;
 
-  events_to_add = g_ptr_array_new ();
-  events_to_remove = g_ptr_array_new ();
-
   overlap = gcal_range_calculate_overlap (new_range, old_range, NULL);
 
   if (overlap == GCAL_RANGE_NO_OVERLAP)
@@ -292,6 +289,9 @@ calculate_changed_events (GcalTimeline            *self,
 
       GCAL_TRACE_MSG ("Ranges overlap, doing a diff");
 
+      events_to_add = g_ptr_array_new ();
+      events_to_remove = g_ptr_array_new ();
+
       old_range_start = gcal_range_get_start (old_range);
       old_range_end = gcal_range_get_end (old_range);
       new_range_start = gcal_range_get_start (new_range);
@@ -348,7 +348,7 @@ calculate_changed_events (GcalTimeline            *self,
         }
     }
 
-  for (i = 0; i < events_to_remove->len; i++)
+  for (i = 0; events_to_remove && i < events_to_remove->len; i++)
     {
       GcalEvent *event = g_ptr_array_index (events_to_remove, i);
 
@@ -360,7 +360,7 @@ calculate_changed_events (GcalTimeline            *self,
       queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, FALSE);
     }
 
-  for (i = 0; i < events_to_add->len; i++)
+  for (i = 0; events_to_add && i < events_to_add->len; i++)
     {
       GcalEvent *event = g_ptr_array_index (events_to_add, i);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]