From 735302ea2d6a281bb326e440c091e95c403f7b7f Mon Sep 17 00:00:00 2001 From: Quentin Glidic Date: Wed, 19 Jun 2013 15:27:11 +0200 Subject: [PATCH] weston-launch: Set all groups for user Signed-off-by: Quentin Glidic https://bugs.freedesktop.org/show_bug.cgi?id=65933 --- configure.ac | 2 +- src/weston-launch.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 726eb4ff..0864d10b 100644 --- a/configure.ac +++ b/configure.ac @@ -52,7 +52,7 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[], [[#include ]]) AC_CHECK_HEADERS([execinfo.h]) -AC_CHECK_FUNCS([mkostemp strchrnul]) +AC_CHECK_FUNCS([mkostemp strchrnul initgroups]) COMPOSITOR_MODULES="wayland-server >= 1.1.90 pixman-1" diff --git a/src/weston-launch.c b/src/weston-launch.c index 76dcede3..7d7b556d 100644 --- a/src/weston-launch.c +++ b/src/weston-launch.c @@ -631,9 +631,13 @@ main(int argc, char *argv[]) } if (setgid(wl.pw->pw_gid) < 0 || +#ifdef HAVE_INITGROUPS + initgroups(wl.pw->pw_name, wl.pw->pw_gid) < 0 || +#endif setuid(wl.pw->pw_uid) < 0) error(1, errno, "dropping privilidges failed"); + if (sleep_fork) { if (wl.verbose) printf("weston-launch: waiting %d seconds\n", sleep_fork);