Set O_CLOEXEC when opening devices
authorDerek Foreman <derekf@osg.samsung.com>
Thu, 30 Apr 2015 16:43:28 +0000 (11:43 -0500)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 30 Apr 2015 22:56:11 +0000 (08:56 +1000)
We'd rather keep these out of the hands of children.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/evdev.c

index d997d24..af36127 100644 (file)
@@ -1953,7 +1953,8 @@ evdev_device_create(struct libinput_seat *seat,
        /* Use non-blocking mode so that we can loop on read on
         * evdev_device_data() until all events on the fd are
         * read.  mtdev_get() also expects this. */
-       fd = open_restricted(libinput, devnode, O_RDWR | O_NONBLOCK);
+       fd = open_restricted(libinput, devnode,
+                            O_RDWR | O_NONBLOCK | O_CLOEXEC);
        if (fd < 0) {
                log_info(libinput,
                         "opening input device '%s' failed (%s).\n",
@@ -2436,7 +2437,8 @@ evdev_device_resume(struct evdev_device *device)
                return -ENODEV;
 
        devnode = udev_device_get_devnode(device->udev_device);
-       fd = open_restricted(libinput, devnode, O_RDWR | O_NONBLOCK);
+       fd = open_restricted(libinput, devnode,
+                            O_RDWR | O_NONBLOCK | O_CLOEXEC);
 
        if (fd < 0)
                return -errno;