aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sway/main.c b/sway/main.c
index cc5f7187..a810bb55 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -197,17 +197,18 @@ static void log_kernel(void) {
static void drop_permissions(void) {
if (getuid() != geteuid() || getgid() != getegid()) {
if (setgid(getgid()) != 0) {
- wlr_log(WLR_ERROR, "Unable to drop root");
+ wlr_log(WLR_ERROR, "Unable to drop root, refusing to start");
exit(EXIT_FAILURE);
}
if (setuid(getuid()) != 0) {
- wlr_log(WLR_ERROR, "Unable to drop root");
+ wlr_log(WLR_ERROR, "Unable to drop root, refusing to start");
exit(EXIT_FAILURE);
}
}
if (setuid(0) != -1) {
- wlr_log(WLR_ERROR, "Root privileges can be restored.");
- exit(EXIT_FAILURE);
+ wlr_log(WLR_ERROR, "Unable to drop root (we shouldn't be able to "
+ "restore it after setuid), refusing to start");
+ return false;
}
}