e_module: remove an object of module from hash when it's freed. 05/75605/2
authorSeunghun Lee <shiin.lee@samsung.com>
Mon, 20 Jun 2016 14:14:48 +0000 (23:14 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Tue, 21 Jun 2016 07:03:12 +0000 (00:03 -0700)
Without this patch, e_module_find() returns invalid object already freed.

Change-Id: Idbefb967283f905ebd44af5b884c67943978633c

src/bin/e_module.c

index 84556786c5ef3e5bfa19e96d4a8632049d781a52..db074e2dbb9132bee63edbe2d4c1014c9930159b 100644 (file)
@@ -743,6 +743,7 @@ _e_module_free(E_Module *m)
    if (m->dir) eina_stringshare_del(m->dir);
 // if (m->handle) dlclose(m->handle); DONT dlclose! causes problems with deferred callbacks for free etc. - when their code goes away!
    _e_modules = eina_list_remove(_e_modules, m);
+   eina_hash_del(_e_modules_hash, m->name, m);
    free(m);
 }