Dear all.

I found the bug which may occurs enlightenment crash.
 There is code to insert E_Gadcon pointer to custom_populate_requests list in e_gadcon_custom_new(). However, there is no code to remove deleted E_Gadcon pointer from custom_populate_requests list in e_gadcon_custom_del(). So, if the e_gadcon_custom_del() is called before calling _e_gadcon_custom_populate_idler(), then enlightenment crash may occurs while e calls _e_gadcon_custom_populate_idler() because e accesses deleted E_Gadcon pointer.
 I modified this problem. Please review this patch.

 Thanks.
 --
 Doyoun Kang


SVN revision: 75033
This commit is contained in:
Mike Blumenkrantz 2012-08-09 08:25:41 +00:00
parent 934caf9241
commit f8eff99bf8
1 changed files with 4 additions and 0 deletions

View File

@ -331,6 +331,10 @@ e_gadcon_custom_del(E_Gadcon *gc)
{
E_OBJECT_CHECK(gc);
E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
if (eina_list_data_find(custom_populate_requests, gc))
custom_populate_requests = eina_list_remove(custom_populate_requests, gc);
gadcons = eina_list_remove(gadcons, gc);
}