diff options
author | Дилян Палаузов <git-dpa@aegee.org> | 2019-07-11 11:17:42 +0000 |
---|---|---|
committer | Дилян Палаузов <git-dpa@aegee.org> | 2019-07-11 16:45:32 +0000 |
commit | 58ce6c4ddffe02d2fb66687d825a12ed4ea373e9 (patch) | |
tree | db224a1e45fcfbd508831c7dcd40433c109242a5 | |
parent | 277c363924b9b7daf272c625984796fc76c0cc5d (diff) | |
download | evolution-data-server-58ce6c4ddffe02d2fb66687d825a12ed4ea373e9.tar.gz |
M!26 - Fix a possible memory leak in e_cal_client_get_component_as_string()
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/merge_requests/26
-rw-r--r-- | src/calendar/libecal/e-cal-client.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/calendar/libecal/e-cal-client.c b/src/calendar/libecal/e-cal-client.c index 7e2738355..4cf3b14ba 100644 --- a/src/calendar/libecal/e-cal-client.c +++ b/src/calendar/libecal/e-cal-client.c @@ -3125,16 +3125,6 @@ append_timezone_string (gpointer key, GString *vcal_string = data; g_string_append (vcal_string, value); - g_free (value); -} - -/* This simply frees the hash values. */ -static void -free_timezone_string (gpointer key, - gpointer value, - gpointer data) -{ - g_free (value); } /** @@ -3162,7 +3152,7 @@ e_cal_client_get_component_as_string (ECalClient *client, g_return_val_if_fail (E_IS_CAL_CLIENT (client), NULL); g_return_val_if_fail (icalcomp != NULL, NULL); - timezone_hash = g_hash_table_new (g_str_hash, g_str_equal); + timezone_hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); /* Add any timezones needed to the hash. We use a hash since we only * want to add each timezone once at most. */ @@ -3171,7 +3161,7 @@ e_cal_client_get_component_as_string (ECalClient *client, cbdata.success = TRUE; i_cal_component_foreach_tzid (icalcomp, foreach_tzid_callback, &cbdata); if (!cbdata.success) { - g_hash_table_foreach (timezone_hash, free_timezone_string, NULL); + g_hash_table_destroy (timezone_hash); return NULL; } |