discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=14a6ac64589c85dc8ca3875b727ddddd3a164646

commit 14a6ac64589c85dc8ca3875b727ddddd3a164646
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Sep 29 12:58:13 2015 -0400

    unset E_Client->internal_elm_win before deleting the client in e_win
    
    ==24509== Invalid write of size 8
    ==24509==    at 0x502D00: _e_elm_win_trap_del (e_win.c:39)
    ==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
    ==24509==    by 0x91F4643: evas_obj_smart_del (in 
/usr/lib/libevas.so.1.15.99)
    ==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
    ==24509==    by 0x91E9107: _evas_object_eo_base_destructor 
(evas_object_main.c:739)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x5086715: _elm_widget_eo_base_destructor 
(elm_widget.c:5744)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
    ==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
    ==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
    ==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
    ==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
    ==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
    ==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
    ==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
    ==24509==    by 0x6097348: _edje_emit_handle (edje_program.c:1405)
    ==24509==    by 0x60924EE: _edje_message_queue_process 
(edje_message_queue.c:787)
    ==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
    ==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
    ==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
    ==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
    ==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal 
(ecore_main.c:1927)
    ==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
    ==24509==    by 0x4383F4: main (e_main.c:1047)
    ==24509==  Address 0x14fb1a28 is 1,176 bytes inside a block of size 1,352 
free'd
    ==24509==    at 0x4C2A65B: free (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
    ==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
    ==24509==    by 0x502CED: _e_elm_win_trap_del (e_win.c:37)
    ==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
    ==24509==    by 0x91F4643: evas_obj_smart_del (in 
/usr/lib/libevas.so.1.15.99)
    ==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
    ==24509==    by 0x91E9107: _evas_object_eo_base_destructor 
(evas_object_main.c:739)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0x5086715: _elm_widget_eo_base_destructor 
(elm_widget.c:5744)
    ==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
    ==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
    ==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
    ==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
    ==24509==    by 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
    ==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
    ==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
    ==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
    ==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
    ==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
    ==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
    ==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
    ==24509==    by 0x6097348: _edje_emit_handle (edje_program.c:1405)
    ==24509==    by 0x60924EE: _edje_message_queue_process 
(edje_message_queue.c:787)
    ==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
    ==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
    ==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
    ==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
    ==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal 
(ecore_main.c:1927)
    ==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
    ==24509==    by 0x4383F4: main (e_main.c:1047)
---
 src/bin/e_win.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index f783bce..266d43f 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -34,9 +34,9 @@ _e_elm_win_trap_del(void *data, Evas_Object *o)
    EINA_SAFETY_ON_NULL_RETURN(ctx);
    if (ctx->client)
      {
+        ctx->client->internal_elm_win = NULL;
         e_object_del(E_OBJECT(ctx->client));
         evas_object_data_set(o, "E_Client", NULL);
-        ctx->client->internal_elm_win = NULL;
      }
    free(ctx);
 }

-- 


Reply via email to