diff -up frozen-bubble-2.2.1-beta1/server/tools.c~ frozen-bubble-2.2.1-beta1/server/tools.c
--- frozen-bubble-2.2.1-beta1/server/tools.c~ 2010-08-07 15:36:27.000000000 +0200
+++ frozen-bubble-2.2.1-beta1/server/tools.c 2013-03-06 12:31:35.474128780 +0100
@@ -261,10 +261,17 @@ void daemonize() {
if (user_to_switch != NULL) {
struct passwd* user = getpwnam(user_to_switch);
if (user) {
- setgid(user->pw_gid);
- setuid(user->pw_uid);
+ if (setgid(user->pw_gid)) {
+ l2(OUTPUT_TYPE_ERROR, "Cannot switch uid to %s: %s", user_to_switch, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ if (setgid(user->pw_gid)) {
+ l2(OUTPUT_TYPE_ERROR, "Cannot switch gid to %s: %s", user_to_switch, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
} else {
- l2(OUTPUT_TYPE_ERROR, "Cannot switch user to %s: %s", user_to_switch, strerror(errno));
+ l2(OUTPUT_TYPE_ERROR, "Cannot find user %s: %s", user_to_switch, strerror(errno));
+ exit(EXIT_FAILURE);
}
}