From 758894bc9cd9f0d0332d5c8bd391b80adf8f62ef Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 9 Aug 2019 14:13:17 +0100 Subject: [PATCH] tiling config -fix use after free crash on change of config --- src/modules/tiling/e_mod_config.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/tiling/e_mod_config.c b/src/modules/tiling/e_mod_config.c index e3ae76455..ab1ecfc98 100644 --- a/src/modules/tiling/e_mod_config.c +++ b/src/modules/tiling/e_mod_config.c @@ -228,7 +228,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) { struct _Config_vdesk *vd; - Eina_List *l; + Eina_List *l, *vdesks; tiling_g.config->tile_dialogs = cfdata->config.tile_dialogs; tiling_g.config->show_titles = cfdata->config.show_titles; @@ -265,10 +265,7 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, } } - EINA_LIST_FREE(tiling_g.config->vdesks, vd) - { - free(vd); - } + vdesks = tiling_g.config->vdesks; tiling_g.config->vdesks = NULL; for (l = cfdata->config.vdesks; l; l = l->next) @@ -291,6 +288,11 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, e_tiling_update_conf(); + EINA_LIST_FREE(vdesks, vd) + { + free(vd); + } + e_config_save_queue(); return EINA_TRUE;