From 67188b7cba2a985926647e049ed32c72b6ee98c8 Mon Sep 17 00:00:00 2001 From: sghctoma Date: Thu, 30 Aug 2018 10:33:48 +0200 Subject: [PATCH] Enable privilege dropping of FreeBSD Privilege dropping works on FreeBSD too, so only the caps parts need to be Linux-only. --- sway/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sway/main.c b/sway/main.c index 7ed10c86c..2f05dc383 100644 --- a/sway/main.c +++ b/sway/main.c @@ -366,13 +366,15 @@ int main(int argc, char **argv) { return 1; } -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) if (getuid() != geteuid() || getgid() != getegid()) { +#ifdef __linux__ // Retain capabilities after setuid() if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) { wlr_log(WLR_ERROR, "Cannot keep caps after setuid()"); exit(EXIT_FAILURE); } +#endif suid = true; } #endif @@ -382,7 +384,7 @@ int main(int argc, char **argv) { detect_proprietary(); detect_raspi(); -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) drop_permissions(suid); #endif // handle SIGTERM signals