summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-01-20 11:52:52 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-01-20 11:52:27 -0500
commit39476fad326e60b277fb6f2f2cd604e800a3e7a5 (patch)
treec421ad7a3c22825f3ab767fea5fc245835212900
parent75224784bd5fde6420e6a4e67f61ab12a2eaf573 (diff)
downloadenlightenment-39476fad326e60b277fb6f2f2cd604e800a3e7a5.tar.gz
do not double-free lists during luncher bar empty
==15191== Invalid read of size 8 ==15191== at 0x2B6328A7: eina_list_next (eina_inline_list.x:32) ==15191== by 0x2B637520: _bar_empty (bar.c:1405) ==15191== by 0x2B639301: _bar_recalculate_job (bar.c:1958) ==15191== by 0xDBDA800: _ecore_job_event_handler (ecore_job.c:98) ==15191== by 0xDBD3AC6: _ecore_call_handler_cb (ecore_private.h:317) ==15191== by 0xDBD4A55: _ecore_event_call (ecore_events.c:518) ==15191== by 0xDBDDABF: _ecore_main_loop_iterate_internal (ecore_main.c:2380) ==15191== by 0xDBDB86D: ecore_main_loop_begin (ecore_main.c:1290) ==15191== by 0x441A94: main (e_main.c:1093) ==15191== Address 0x1ff97dc8 is 6,520 bytes inside a recently re-allocated block of size 8,192 alloc'd
-rw-r--r--src/modules/luncher/bar.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 46cc70f996..072c5729dd 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -1398,13 +1398,9 @@ _bar_empty(Instance *inst)
{
if (inst->icons)
{
- Icon *ic;
- Eina_List *l;
-
elm_box_clear(inst->o_icon_con);
- EINA_LIST_FOREACH(inst->icons, l, ic)
- _bar_icon_del(inst, ic);
- eina_list_free(inst->icons);
+ while (inst->icons)
+ _bar_icon_del(inst, eina_list_data_get(inst->icons));
inst->icons = NULL;
}
}