fix possible null deref crash when deleting gadcon client config

SVN revision: 79827
This commit is contained in:
Mike Blumenkrantz 2012-11-29 11:48:34 +00:00
parent ab52c7a2ee
commit 25853a0c2a
1 changed files with 6 additions and 4 deletions

View File

@ -939,16 +939,18 @@ e_gadcon_client_config_del(E_Config_Gadcon *cf_gc, E_Config_Gadcon_Client *cf_gc
{
E_Gadcon *gc;
Eina_List *l, *ll;
if (!cf_gcc) return;
EINA_LIST_FOREACH(gadcons, l, gc)
{
if (!gc->awaiting_classes) continue;
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));
}
if (!cf_gcc) return;
if (cf_gcc->name) eina_stringshare_del(cf_gcc->name);
if (cf_gcc->id) eina_stringshare_del(cf_gcc->id);
if (cf_gcc->style) eina_stringshare_del(cf_gcc->style);
eina_stringshare_del(cf_gcc->name);
eina_stringshare_del(cf_gcc->id);
eina_stringshare_del(cf_gcc->style);
if (cf_gc) cf_gc->clients = eina_list_remove(cf_gc->clients, cf_gcc);
free(cf_gcc);
}