From d273b4304f7907aeb93bac117a4bcf2d2330501d Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 5 Oct 2022 16:59:30 +0200 Subject: [PATCH] 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; } /**