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
This commit is contained in:
Wonki Kim 2021-01-25 08:50:28 +00:00 committed by Carsten Haitzler (Rasterman)
parent d37958c1b0
commit 257dced038
1 changed files with 5 additions and 4 deletions

View File

@ -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;
}