evdev: prevent unterminated device name

The kernel copies up to sizeof(devname) bytes but doesn't null-terminate the
string if the device name exceeds the size of the supplied buffer.
dev
Peter Hutterer 11 years ago committed by Kristian Høgsberg
parent 3ca59d3968
commit 11f5bfbc09
  1. 1
      src/evdev.c

@ -575,6 +575,7 @@ evdev_device_create(struct weston_seat *seat, const char *path, int device_fd)
device->fd = device_fd; device->fd = device_fd;
ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname); ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname);
devname[sizeof(devname) - 1] = '\0';
device->devname = strdup(devname); device->devname = strdup(devname);
if (!evdev_handle_device(device)) { if (!evdev_handle_device(device)) {

Loading…
Cancel
Save