From 840a421a5e4525898eb51ea9e1a908bfb4212d92 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Wed, 25 Sep 2013 14:47:47 +0100 Subject: [PATCH] compositor: check if seteuid worked Checking the return value from seteuid in order to not launch clients with the wrong effective uid. Signed-off-by: Alexandru DAMIAN --- src/compositor.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index f619f82..a2c8725 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -247,8 +247,11 @@ child_client_exec(int sockfd, const char *path) sigfillset(&allsigs); sigprocmask(SIG_UNBLOCK, &allsigs, NULL); - /* Launch clients as the user. */ - seteuid(getuid()); + /* Launch clients as the user. Do not lauch clients with wrong euid.*/ + if (seteuid(getuid()) == -1) { + weston_log("compositor: failed seteuid\n"); + return; + } /* SOCK_CLOEXEC closes both ends, so we dup the fd to get a * non-CLOEXEC fd to pass through exec. */ -- 2.7.4