forked from enlightenment/efl
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:
parent
d37958c1b0
commit
257dced038
|
@ -49,17 +49,18 @@ eeze_udev_walk_get_sysattr(const char *syspath,
|
||||||
if (!(device = _new_device(syspath)))
|
if (!(device = _new_device(syspath)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (parent = device; parent;
|
for (parent = device; parent;)
|
||||||
child = parent, parent = udev_device_get_parent(child))
|
|
||||||
{
|
{
|
||||||
if ((test = udev_device_get_sysattr_value(parent, sysattr)))
|
if ((test = udev_device_get_sysattr_value(parent, sysattr)))
|
||||||
{
|
{
|
||||||
test = eina_stringshare_add(test);
|
test = eina_stringshare_add(test);
|
||||||
udev_device_unref(device);
|
udev_device_unref(parent);
|
||||||
return test;
|
return test;
|
||||||
}
|
}
|
||||||
|
child = parent;
|
||||||
|
parent = udev_device_get_parent(child);
|
||||||
|
udev_device_unref(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
udev_device_unref(device);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue