evas: Fix resource leak in evas_module_find_type
authorChris Michael <cp.michael@samsung.com>
Wed, 25 Jan 2017 13:53:41 +0000 (08:53 -0500)
committerChris Michael <cp.michael@samsung.com>
Wed, 25 Jan 2017 14:09:38 +0000 (09:09 -0500)
Coverity reports a resource leak here if we successfully load the evas
module as we were never freeing the eina_module here. Previously we
would just return the evas module without proper cleanup of the
eina_module. This patch fixes the leak by calling eina_module_free if
we successfully load the evas module.

Fixes CID1367503

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/evas/file/evas_module.c

index 67f5656..0088b1b 100644 (file)
@@ -574,7 +574,11 @@ evas_module_find_type(Evas_Module_Type type, const char *name)
         em = eina_hash_find(evas_modules[type], name);
         if (em)
           {
-             if (evas_module_load(em)) return em;
+             if (evas_module_load(em))
+               {
+                  eina_module_free(en);
+                  return em;
+               }
           }
 
         eina_module_free(en);