loader: don't leak udev_enumerate
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 17 Apr 2015 13:13:36 +0000 (15:13 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Sat, 11 Jul 2015 19:49:25 +0000 (20:49 +0100)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90073
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
src/loader/loader.c

index 8780587a725413bc29ab2d511f8e653e23816a74..8da1858734ac11428e58b185a82dc94c2667efc4 100644 (file)
@@ -273,6 +273,8 @@ get_render_node_from_id_path_tag(struct udev *udev,
                (struct udev_enumerate *));
    UDEV_SYMBOL(struct udev_list_entry *, udev_enumerate_get_list_entry,
                (struct udev_enumerate *));
+   UDEV_SYMBOL(void, udev_enumerate_unref,
+               (struct udev_enumerate *));
    UDEV_SYMBOL(struct udev_list_entry *, udev_list_entry_get_next,
                (struct udev_list_entry *));
    UDEV_SYMBOL(const char *, udev_list_entry_get_name,
@@ -307,6 +309,8 @@ get_render_node_from_id_path_tag(struct udev *udev,
       udev_device_unref(device);
    }
 
+   udev_enumerate_unref(e);
+
    if (found) {
       path_res = strdup(udev_device_get_devnode(device));
       udev_device_unref(device);