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);