udev-seat: fix a memory leak
authorjeon <jhyuni.kang@samsung.com>
Thu, 12 Mar 2020 10:44:25 +0000 (19:44 +0900)
committerjeon <jhyuni.kang@samsung.com>
Tue, 5 Jan 2021 11:01:03 +0000 (20:01 +0900)
Change-Id: Ic6aff8a80c272da3510d611c0fc31f4ace73fbaf

src/udev-seat.c

index 3fd5e37f6e4cee92fcbaf504841d0cb5020b76c4..445c674107f08295fe18acfe00dfe4edd44de040 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);