hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=66c57294946bf9e2412b5eb2732b8e8ee082ff65

commit 66c57294946bf9e2412b5eb2732b8e8ee082ff65
Author: Shinwoo Kim <cinoo....@samsung.com>
Date:   Mon May 24 19:48:43 2021 +0900

    eeze: remove memory leak
    
    Summary: udev_enumerate_new needs to call udev_enumerate_unref before 
leaving.
    
    Reviewers: raster, Hermet, herb, jsuya
    
    Reviewed By: Hermet
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D12280
---
 src/lib/eeze/eeze_net.c       | 8 +++++++-
 src/lib/eeze/eeze_udev_find.c | 6 +++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/lib/eeze/eeze_net.c b/src/lib/eeze/eeze_net.c
index 11fcc26d46..997eb22c73 100644
--- a/src/lib/eeze/eeze_net.c
+++ b/src/lib/eeze/eeze_net.c
@@ -77,10 +77,15 @@ eeze_net_new(const char *name)
         syspath = eina_stringshare_add(name);
         break;
      }
-   if (!device) return NULL;
+   if (!device)
+     {
+        udev_enumerate_unref(en);
+        return NULL;
+     }
    net = calloc(1, sizeof(Eeze_Net));
    if (!net)
      {
+        udev_enumerate_unref(en);
         udev_device_unref(device);
         return NULL;
      }
@@ -91,6 +96,7 @@ eeze_net_new(const char *name)
    idx = udev_device_get_sysattr_value(net->device, "ifindex");
    if (!idx)
      {
+        udev_enumerate_unref(en);
         udev_device_unref(net->device);
         eina_stringshare_del(net->syspath);
         eina_stringshare_del(net->name);
diff --git a/src/lib/eeze/eeze_udev_find.c b/src/lib/eeze/eeze_udev_find.c
index 3b1e5ef926..251d020354 100644
--- a/src/lib/eeze/eeze_udev_find.c
+++ b/src/lib/eeze/eeze_udev_find.c
@@ -95,7 +95,11 @@ eeze_udev_find_unlisted_similar(Eina_List *list)
           return NULL;
 
         device = _new_device(dev);
-        if (!device) continue;
+        if (!device)
+          {
+             udev_enumerate_unref(en);
+             continue;
+          }
 
         if ((vendor = udev_device_get_property_value(device, "ID_VENDOR_ID")))
           udev_enumerate_add_match_property(en, "ID_VENDOR_ID", vendor);

-- 


Reply via email to