From 13e3219b8acd460c73ec0df03e51ef6678664a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eckl=2C=20M=C3=A1t=C3=A9?= <ecklm94@gmail.com> Date: Fri, 27 May 2016 10:24:24 +0200 Subject: [PATCH] =?UTF-8?q?Alacsony=20port=20probl=C3=A9ma=20jav=C3=ADt?= =?UTF-8?q?=C3=A1s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 9 +++++---- src/udp_socket_wp.cpp | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index c66faf7..0071412 100644 --- a/main.cpp +++ b/main.cpp @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) log_on_demand(LOG_INFO, "Server started on pid %d", getpid()); // Enélkül nem hajlandó sudo után logolni. if(verbose) - log_on_demand(LOG_DEBUG, "Current working directory is %s.", working_dir); + log_on_demand(LOG_DEBUG, "Current working directory is %s.", working_dir); passwd *new_uid = getpwnam(RUNNING_USER); if(new_uid == NULL) @@ -118,12 +118,12 @@ int main(int argc, char *argv[]) PERROR_ON_DEMAND("chdir"); exit(EXIT_FAILURE); } - setgid(new_uid->pw_gid); - setuid(new_uid->pw_uid); IPC_US_communicator comm_link(COMM_SOCK_PATH, run_as_daemon); if(!run_as_daemon) { + setgid(new_uid->pw_gid); + setuid(new_uid->pw_uid); if(command_list.empty()) { log_on_demand(LOG_ERR, "In this mode you must specify at least one command!"); @@ -164,7 +164,8 @@ int main(int argc, char *argv[]) inet_ntop(server_address.sin6_family, &server_address.sin6_addr, addr, INET6_ADDRSTRLEN); log_on_demand(LOG_DEBUG, "Server started serving on: %s",addr); } - + setgid(new_uid->pw_gid); + setuid(new_uid->pw_uid); // ----------------- INIT END -------------------------- // ------------------ SERVE ---------------------------- diff --git a/src/udp_socket_wp.cpp b/src/udp_socket_wp.cpp index 54e156f..7a76db5 100644 --- a/src/udp_socket_wp.cpp +++ b/src/udp_socket_wp.cpp @@ -34,6 +34,7 @@ void udp_socket_wp::setsockopt_wp(int __level, int __optname, const void* __optv void udp_socket_wp::bind_wp(const struct sockaddr* __addr, size_t __len) { if (bind(fd, __addr, __len) < 0) { // May throw some exception + PERROR_ON_DEMAND("bind"); } } -- GitLab