summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWonki Kim <wonki_.kim@samsung.com>2021-01-25 08:50:28 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-01-25 08:55:24 +0000
commit257dced03842b9ac8bd4c18f59c29ca28717c9e0 (patch)
tree7de1853429b0bdcd56e8736b63191f7729b75d64
parentd37958c1b0b005b8f04a6ee951d83f6af6e79689 (diff)
downloadefl-257dced03842b9ac8bd4c18f59c29ca28717c9e0.tar.gz
eeze walk: fix a memory leaking
Summary: there is a memory leak in a logic for walking along child-parent relation, in case of device_get_sysattr_value failure. this patch fixes the leak. Change-Id: I95e9484b1549d1c794ec529c995af33da9b8a0ee Reviewers: bu5hm4n, zmike Subscribers: raster, SPAM-TeresaButler, vtorri, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12224
-rw-r--r--src/lib/eeze/eeze_udev_walk.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/eeze/eeze_udev_walk.c b/src/lib/eeze/eeze_udev_walk.c
index 78e2aabda4..4cd661b184 100644
--- a/src/lib/eeze/eeze_udev_walk.c
+++ b/src/lib/eeze/eeze_udev_walk.c
@@ -49,17 +49,18 @@ eeze_udev_walk_get_sysattr(const char *syspath,
if (!(device = _new_device(syspath)))
return NULL;
- for (parent = device; parent;
- child = parent, parent = udev_device_get_parent(child))
+ for (parent = device; parent;)
{
if ((test = udev_device_get_sysattr_value(parent, sysattr)))
{
test = eina_stringshare_add(test);
- udev_device_unref(device);
+ udev_device_unref(parent);
return test;
}
+ child = parent;
+ parent = udev_device_get_parent(child);
+ udev_device_unref(child);
}
- udev_device_unref(device);
return NULL;
}