From: Benjamin Franzke Date: Tue, 24 Jan 2012 15:37:15 +0000 (+0100) Subject: weston: Drop priviledges early, and seteuid when needed X-Git-Tag: 0.1.0~163^2~110 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f7968296c621ddcaeb637dde3ce24452ab20a958;p=platform%2Fupstream%2Flibinput.git weston: Drop priviledges early, and seteuid when needed --- diff --git a/src/evdev.c b/src/evdev.c index f489ede..101b63f 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -20,6 +20,8 @@ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#define _GNU_SOURCE + #include #include #include @@ -439,6 +441,7 @@ evdev_input_device_create(struct evdev_input *master, struct evdev_input_device *device; struct wl_event_loop *loop; struct weston_compositor *ec; + uid_t saved_uid, uid, euid; device = malloc(sizeof *device); if (device == NULL) @@ -456,7 +459,10 @@ evdev_input_device_create(struct evdev_input *master, device->rel.dx = 0; device->rel.dy = 0; + getresuid(&uid, &euid, &saved_uid); + seteuid(saved_uid); device->fd = open(path, O_RDONLY); + seteuid(euid); if (device->fd < 0) goto err0;