1
0
Fork 0

udev_device.c: fix possible uninitialized read

This commit is contained in:
illiliti 2021-06-03 11:20:51 +03:00
parent 496291c8dd
commit e814cfa506

View file

@ -260,6 +260,7 @@ const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const
fclose(file);
data[len] = '\0';
// TODO strrchr?
while (len-- > 0 && data[len] == '\n') {
data[len] = '\0';
}
@ -335,7 +336,7 @@ static void set_properties_from_uevent(struct udev_device *udev_device)
while (fgets(line, sizeof(line), file)) {
line[strlen(line) - 1] = '\0';
if (strncmp(line, "DEVNAME", 7) == 0) {
if (strncmp(line, "DEVNAME=", 8) == 0) {
snprintf(devnode, sizeof(devnode), "/dev/%s", line + 8);
udev_list_entry_add(&udev_device->properties, "DEVNAME", devnode, 0);
}
@ -463,6 +464,7 @@ static void set_properties_from_evdev(struct udev_device *udev_device)
}
}
// TODO do not assume keyboard if EV_KEY
if (test_bit(ev_bits, EV_KEY)) {
udev_list_entry_add(&udev_device->properties, "ID_INPUT_KEY", "1", 0);
@ -560,7 +562,7 @@ struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, de
{
char path[PATH_MAX];
if (!udev || !type || !devnum) {
if (!udev) {
return NULL;
}
@ -638,7 +640,7 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat
while (fgets(line, sizeof(line), file)) {
line[strlen(line) - 1] = '\0';
if (strncmp(line, "DEVPATH", 7) == 0) {
if (strncmp(line, "DEVPATH=", 8) == 0) {
snprintf(syspath, sizeof(syspath), "/sys%s", line + 8);
udev_list_entry_add(&udev_device->properties, "SYSPATH", syspath, 0);
udev_list_entry_add(&udev_device->properties, "DEVPATH", line + 8, 0);
@ -655,7 +657,7 @@ struct udev_device *udev_device_new_from_file(struct udev *udev, const char *pat
cnt++;
}
else if (strncmp(line, "DEVNAME", 7) == 0) {
else if (strncmp(line, "DEVNAME=", 8) == 0) {
snprintf(devnode, sizeof(devnode), "/dev/%s", line + 8);
udev_list_entry_add(&udev_device->properties, "DEVNAME", devnode, 0);
}