diff --git a/src/server.c b/src/server.c index a316de7f..4a6aac90 100644 --- a/src/server.c +++ b/src/server.c @@ -1785,9 +1785,6 @@ main(int argc, char **argv) LOGI("initializing ciphers... %s", method); int m = enc_init(password, method); - // init block list - init_block_list(); - // initialize ev loop struct ev_loop *loop = EV_DEFAULT; @@ -1864,6 +1861,9 @@ main(int argc, char **argv) run_as(user); } + // init block list + init_block_list(); + // Init connections cork_dllist_init(&connections); diff --git a/src/utils.c b/src/utils.c index 1b689483..367d4c2d 100644 --- a/src/utils.c +++ b/src/utils.c @@ -109,14 +109,14 @@ run_as(const char *user) if (err == 0 && pwd) { /* setgid first, because we may not be allowed to do it anymore after setuid */ - if (setregid(pwd->pw_gid, 0) != 0) { + if (setgid(pwd->pw_gid) != 0) { LOGE( "Could not change group id to that of run_as user '%s': %s", user, strerror(errno)); return 0; } - if (setreuid(pwd->pw_uid, 0) != 0) { + if (setuid(pwd->pw_uid) != 0) { LOGE( "Could not change user id to that of run_as user '%s': %s", user, strerror(errno)); @@ -150,12 +150,12 @@ run_as(const char *user) return 0; } /* setgid first, because we may not allowed to do it anymore after setuid */ - if (setregid(pwd->pw_gid, 0) != 0) { + if (setgid(pwd->pw_gid) != 0) { LOGE("Could not change group id to that of run_as user '%s': %s", user, strerror(errno)); return 0; } - if (setreuid(pwd->pw_uid, 0) != 0) { + if (setuid(pwd->pw_uid) != 0) { LOGE("Could not change user id to that of run_as user '%s': %s", user, strerror(errno)); return 0;