check return value for udev_new()
authorweizhixiang <1138871845@qq.com>
Tue, 15 Sep 2020 02:23:38 +0000 (10:23 +0800)
committerweizhixiang <1138871845@qq.com>
Tue, 15 Sep 2020 02:42:47 +0000 (10:42 +0800)
Signed-off-by: weizhixiang <1138871845@qq.com>
tools/libinput-quirks.c
tools/shared.c

index 1a80f367386f05b3eb49b3ef5065533d0958480e..434bca3fd098e8593199f50bde1b39ae31e3097b 100644 (file)
@@ -191,6 +191,9 @@ main(int argc, char **argv)
        }
 
        udev = udev_new();
+       if (!udev)
+               goto out;
+               
        path = argv[optind];
        if (strneq(path, "/sys/", 5)) {
                device = udev_device_new_from_syspath(udev, path);
index 0e99c3581db84dc1f7934cb416fc745d4954445a..a55a91579e0ffbc72adb92d22c7fb63618259441 100644 (file)
@@ -437,13 +437,16 @@ static char*
 find_device(const char *udev_tag)
 {
        struct udev *udev;
-       struct udev_enumerate *e;
+       struct udev_enumerate *e = NULL;
        struct udev_list_entry *entry = NULL;
        struct udev_device *device;
        const char *path, *sysname;
        char *device_node = NULL;
 
        udev = udev_new();
+       if (!udev)
+               goto out;
+
        e = udev_enumerate_new(udev);
        udev_enumerate_add_match_subsystem(e, "input");
        udev_enumerate_scan_devices(e);
@@ -468,6 +471,7 @@ find_device(const char *udev_tag)
                if (device_node)
                        break;
        }
+out:
        udev_enumerate_unref(e);
        udev_unref(udev);
 
@@ -499,6 +503,9 @@ is_touchpad_device(const char *devnode)
                return false;
 
        udev = udev_new();
+       if (!udev)
+               goto out;
+
        dev = udev_device_new_from_devnum(udev, 'c', st.st_rdev);
        if (!dev)
                goto out;