raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=758894bc9cd9f0d0332d5c8bd391b80adf8f62ef

commit 758894bc9cd9f0d0332d5c8bd391b80adf8f62ef
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Aug 9 14:13:17 2019 +0100

    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;

-- 


Reply via email to