Remove unused device variables and fix a leak 48/164748/1
authorMyoungwoon Roy, Kim <myoungwoon.kim@samsung.com>
Thu, 21 Dec 2017 00:02:07 +0000 (09:02 +0900)
committerMyoungwoon Roy, Kim <myoungwoon.kim@samsung.com>
Thu, 21 Dec 2017 00:02:41 +0000 (09:02 +0900)
As we do not ever used the udev_devices created from
udev_device_new_from_syspath in these functions, remove them.

If we cannot create a new udev device, then we should free the
previously created udev enumeration from above.

Change-Id: Ia9eaf5b3fa22bc17d685293ceb5ade8ebf6c5401

src/lib/eeze/eeze_udev_find.c

index 06bbb4c..cc7eb47 100644 (file)
@@ -28,7 +28,10 @@ eeze_udev_find_similar_from_syspath(const char *syspath)
      return NULL;
 
    if (!(device = _new_device(syspath)))
-     return NULL;
+     {
+        udev_enumerate_unref(en);
+        return NULL;
+     }
 
    vendor = udev_device_get_property_value(device, "ID_VENDOR_ID");
 
@@ -229,6 +232,7 @@ eeze_udev_find_by_type(Eeze_Udev_Type etype,
       case EEZE_UDEV_TYPE_V4L:
        udev_enumerate_add_match_subsystem(en, "video4linux");
         break;
+
       case EEZE_UDEV_TYPE_BLUETOOTH:
        udev_enumerate_add_match_subsystem(en, "bluetooth");
         break;
@@ -315,7 +319,6 @@ eeze_udev_find_by_filter(const char *subsystem,
 {
    _udev_enumerate *en;
    _udev_list_entry *devs, *cur;
-   _udev_device *device;
    const char *devname;
    Eina_List *ret = NULL;
 
@@ -337,15 +340,11 @@ eeze_udev_find_by_filter(const char *subsystem,
    udev_list_entry_foreach(cur, devs)
      {
         devname = udev_list_entry_get_name(cur);
-        device = udev_device_new_from_syspath(udev, devname);
 
-        if (name)
-          if (!strstr(devname, name))
-            goto out;
+        if (name && (!strstr(devname, name)))
+          continue;
 
         ret = eina_list_append(ret, eina_stringshare_add(devname));
-out:
-        udev_device_unref(device);
      }
    udev_enumerate_unref(en);
    return ret;
@@ -357,7 +356,6 @@ eeze_udev_find_by_sysattr(const char *sysattr,
 {
    _udev_enumerate *en;
    _udev_list_entry *devs, *cur;
-   _udev_device *device;
    const char *devname;
    Eina_List *ret = NULL;
 
@@ -375,9 +373,7 @@ eeze_udev_find_by_sysattr(const char *sysattr,
    udev_list_entry_foreach(cur, devs)
      {
         devname = udev_list_entry_get_name(cur);
-        device = udev_device_new_from_syspath(udev, devname);
         ret = eina_list_append(ret, eina_stringshare_add(devname));
-        udev_device_unref(device);
      }
    udev_enumerate_unref(en);
    return ret;
@@ -388,24 +384,21 @@ eeze_udev_find_by_subsystem_sysname(const char *subsystem, const char *sysname)
 {
    _udev_enumerate *en;
    _udev_list_entry *devs, *cur;
-   _udev_device *device;
    const char *devname;
    Eina_List *ret = NULL;
 
-   if (!sysname) return NULL;
-
    en = udev_enumerate_new(udev);
    if (!en) return NULL;
 
+   if (subsystem) udev_enumerate_add_match_subsystem(en, subsystem);
+   if (sysname) udev_enumerate_add_match_sysname(en, sysname);
+
    udev_enumerate_scan_devices(en);
    devs = udev_enumerate_get_list_entry(en);
    udev_list_entry_foreach(cur, devs)
      {
         devname = udev_list_entry_get_name(cur);
-        device = 
-          udev_device_new_from_subsystem_sysname(udev, subsystem, sysname);
         ret = eina_list_append(ret, eina_stringshare_add(devname));
-        udev_device_unref(device);
      }
    udev_enumerate_unref(en);
    return ret;