[gnome-calendar/868-month-view-clicking-date-outside-of-month-in-agenda-list-makes-months-out-of-sync: 2/4] gcal_set_date_time: Avoid possible use-after-free




commit d273b4304f7907aeb93bac117a4bcf2d2330501d
Author: Milan Crha <mcrha redhat com>
Date:   Wed Oct 5 16:59:30 2022 +0200

    gcal_set_date_time: Avoid possible use-after-free
    
    When the `*dest` and `src` are the same, doing g_date_time_unref()
    can free the instance before it's assigned back to the `*dest`.

 src/utils/gcal-date-time-utils.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/src/utils/gcal-date-time-utils.c b/src/utils/gcal-date-time-utils.c
index 06b3d17a..358ace8e 100644
--- a/src/utils/gcal-date-time-utils.c
+++ b/src/utils/gcal-date-time-utils.c
@@ -35,14 +35,15 @@ gboolean
 gcal_set_date_time (GDateTime **dest,
                     GDateTime  *src)
 {
-  gboolean changed = *dest != src;
+  if (*dest == src)
+    return FALSE;
 
   gcal_clear_date_time (dest);
 
   if (src)
     *dest = g_date_time_ref (src);
 
-  return changed;
+  return TRUE;
 }
 
 /**


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