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>
Mon, 7 Feb 2022 16:07:56 +0000 (01:07 +0900)
Change-Id: Ic6aff8a80c272da3510d611c0fc31f4ace73fbaf

src/udev-seat.c

index c35990265bdf1ac9e3c5d0e59d12c1d63437ccb5..dc3a5e9ae3d19bfb38155fb67c64158ea843563a 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);