diff options
author | Wonki Kim <wonki_.kim@samsung.com> | 2021-01-25 08:50:28 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2021-01-25 08:55:24 +0000 |
commit | 257dced03842b9ac8bd4c18f59c29ca28717c9e0 (patch) | |
tree | 7de1853429b0bdcd56e8736b63191f7729b75d64 | |
parent | d37958c1b0b005b8f04a6ee951d83f6af6e79689 (diff) | |
download | efl-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.c | 9 |
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; } |