diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2016-09-27 14:28:14 -0400 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2016-09-27 14:28:14 -0400 |
| commit | c5b627ec552a2288ff8573f48cc0c867385a257b (patch) | |
| tree | b0c6c2a4ede896dd0a840201c8ae3f77037af7cc | |
| parent | 716a4e5e4fb9a6930d4cd270f4af03dbae7e022a (diff) | |
| parent | dc37159fe059bd4906b064918a71f6cd9278d83d (diff) | |
Merge pull request #911 from thejan2009/setgid-setuid0.10-rc1
Split setgid and setuid, add privilege check [RFC]
| -rw-r--r-- | sway/main.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sway/main.c b/sway/main.c index 972b260b..660da18c 100644 --- a/sway/main.c +++ b/sway/main.c @@ -156,10 +156,18 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } if (getuid() != geteuid() || getgid() != getegid()) { - if (setgid(getgid()) != 0 || setuid(getuid()) != 0) { + if (setgid(getgid()) != 0) { sway_log(L_ERROR, "Unable to drop root"); exit(EXIT_FAILURE); } + if (setuid(getuid()) != 0) { + sway_log(L_ERROR, "Unable to drop root"); + exit(EXIT_FAILURE); + } + } + if (setuid(0) != -1) { + sway_log(L_ERROR, "Root privileges can be restored."); + exit(EXIT_FAILURE); } char *socket_path = getenv("SWAYSOCK"); if (!socket_path) { |
