summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-04-02 16:02:07 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-04-02 16:02:07 +0900
commitd1f4f6c8aff30d9bc4730a161fa2b63c534233b9 (patch)
tree7d7d4632b087d86b6861375876ebe44f1ca418cb
parentf56e33f429cfc165a5a7e7c75c5b2271ba8b58d8 (diff)
downloadefl-d1f4f6c8aff30d9bc4730a161fa2b63c534233b9.tar.gz
elm win - null out freed data on smart del
this fixes double-frees of strings in oddball cases where a deleted window that is not done deleting is accessed. @fix
-rw-r--r--src/lib/elementary/elm_win.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/elementary/elm_win.c b/src/lib/elementary/elm_win.c
index 00f9d1cdf1..ae3e38cd50 100644
--- a/src/lib/elementary/elm_win.c
+++ b/src/lib/elementary/elm_win.c
@@ -1999,10 +1999,19 @@ _elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd)
evas_object_del(sd->icon);
evas_object_del(sd->main_menu);
+ sd->focus_highlight.style = NULL;
+ sd->title = NULL;
+ sd->icon_name = NULL;
+ sd->role = NULL;
+ sd->name = NULL;
+ sd->icon = NULL;
+ sd->main_menu = NULL;
+
_elm_win_profile_del(sd);
_elm_win_available_profiles_del(sd);
free(sd->wm_rot.rots);
+ sd->wm_rot.rots = NULL;
/* Don't let callback in the air that point to sd */
ecore_evas_callback_delete_request_set(sd->ee, NULL);