udev-seat: fix a memory leak
authorjeon <jhyuni.kang@samsung.com>
Thu, 12 Mar 2020 10:44:25 +0000 (19:44 +0900)
committerduna.oh <duna.oh@samsung.com>
Fri, 27 Jan 2023 05:45:52 +0000 (14:45 +0900)
Change-Id: Ic6aff8a80c272da3510d611c0fc31f4ace73fbaf

src/udev-seat.c

index 909809a..353732e 100644 (file)
@@ -130,6 +130,12 @@ device_added(struct udev_device *udev_device,
        devnode = udev_device_get_devnode(udev_device);
        sysname = udev_device_get_sysname(udev_device);
 
+       if (libinput_path_has_device(&input->base, devnode))
+       {
+               log_info(&input->base, "libinput_path already created input device '%s.\n", devnode);
+               return 0;
+       }
+
        /* Search for matching logical seat */
        if (!seat_name)
                seat_name = udev_device_get_property_value(udev_device, "WL_SEAT");
@@ -153,11 +159,6 @@ device_added(struct udev_device *udev_device,
                        return -1;
        }
 
-       if (libinput_path_has_device(&input->base, devnode))
-       {
-               log_info(&input->base, "libinput_path already created input device '%s.\n", devnode);
-               return 0;
-       }
        device = evdev_device_create(&seat->base, udev_device);
        libinput_seat_unref(&seat->base);