check return value for udev_new()

Signed-off-by: weizhixiang <1138871845@qq.com>
This commit is contained in:
weizhixiang 2020-09-15 10:23:38 +08:00
parent 5ebd7bd1f0
commit bb84fcc738
2 changed files with 11 additions and 1 deletions

View 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);

View 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;