summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2022-10-05 16:59:30 +0200
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-10-05 15:10:47 +0000
commitd273b4304f7907aeb93bac117a4bcf2d2330501d (patch)
treed1346c69742526a4a433dc6e5338e1a23960169d
parent80d803d1251e69f0f5ad0aa35550e182a4e487e7 (diff)
downloadgnome-calendar-d273b4304f7907aeb93bac117a4bcf2d2330501d.tar.gz
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`.
-rw-r--r--src/utils/gcal-date-time-utils.c5
1 files 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;
}
/**