udev-seat: fix a memory leak 29/227529/3
authorjeon <jhyuni.kang@samsung.com>
Thu, 12 Mar 2020 10:44:25 +0000 (19:44 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 12 Mar 2020 11:07:45 +0000 (11:07 +0000)
Change-Id: Ic6aff8a80c272da3510d611c0fc31f4ace73fbaf

src/udev-seat.c

index 14a80a2b750878490d69482a3039e072f8c916c2..85f391e5440cae44d4952ccf7f96071f67fa0363 100644 (file)
@@ -99,6 +99,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");
@@ -115,11 +121,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);