forked from enlightenment/enlightenment
fix possible null deref crash when deleting gadcon client config
SVN revision: 79827
This commit is contained in:
parent
ab52c7a2ee
commit
25853a0c2a
|
@ -939,16 +939,18 @@ e_gadcon_client_config_del(E_Config_Gadcon *cf_gc, E_Config_Gadcon_Client *cf_gc
|
||||||
{
|
{
|
||||||
E_Gadcon *gc;
|
E_Gadcon *gc;
|
||||||
Eina_List *l, *ll;
|
Eina_List *l, *ll;
|
||||||
|
|
||||||
|
if (!cf_gcc) return;
|
||||||
EINA_LIST_FOREACH(gadcons, l, gc)
|
EINA_LIST_FOREACH(gadcons, l, gc)
|
||||||
{
|
{
|
||||||
if (!gc->awaiting_classes) continue;
|
if (!gc->awaiting_classes) continue;
|
||||||
ll = eina_hash_find(gc->awaiting_classes, cf_gcc->name);
|
ll = eina_hash_find(gc->awaiting_classes, cf_gcc->name);
|
||||||
eina_hash_set(gc->awaiting_classes, cf_gcc->name, eina_list_remove(ll, cf_gcc));
|
eina_hash_set(gc->awaiting_classes, cf_gcc->name, eina_list_remove(ll, cf_gcc));
|
||||||
}
|
}
|
||||||
if (!cf_gcc) return;
|
|
||||||
if (cf_gcc->name) eina_stringshare_del(cf_gcc->name);
|
eina_stringshare_del(cf_gcc->name);
|
||||||
if (cf_gcc->id) eina_stringshare_del(cf_gcc->id);
|
eina_stringshare_del(cf_gcc->id);
|
||||||
if (cf_gcc->style) eina_stringshare_del(cf_gcc->style);
|
eina_stringshare_del(cf_gcc->style);
|
||||||
if (cf_gc) cf_gc->clients = eina_list_remove(cf_gc->clients, cf_gcc);
|
if (cf_gc) cf_gc->clients = eina_list_remove(cf_gc->clients, cf_gcc);
|
||||||
free(cf_gcc);
|
free(cf_gcc);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue