diff options
author | Milan Crha <mcrha@redhat.com> | 2022-10-05 16:59:30 +0200 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2022-10-05 15:10:47 +0000 |
commit | d273b4304f7907aeb93bac117a4bcf2d2330501d (patch) | |
tree | d1346c69742526a4a433dc6e5338e1a23960169d | |
parent | 80d803d1251e69f0f5ad0aa35550e182a4e487e7 (diff) | |
download | gnome-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.c | 5 |
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; } /** |