diff options
-rw-r--r-- | sapi/fpm/fpm/fpm_sockets.c | 6 | ||||
-rw-r--r-- | sapi/fpm/fpm/fpm_stdio.c | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c index f56b9cfbd1..df94967db1 100644 --- a/sapi/fpm/fpm/fpm_sockets.c +++ b/sapi/fpm/fpm/fpm_sockets.c @@ -167,7 +167,7 @@ static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct { int flags = 1; int sock; - mode_t saved_umask; + mode_t saved_umask = 0; sock = socket(sa->sa_family, SOCK_STREAM, 0); @@ -181,6 +181,7 @@ static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct if (wp->listen_address_domain == FPM_AF_UNIX) { if (fpm_socket_unix_test_connect((struct sockaddr_un *)sa, socklen) == 0) { zlog(ZLOG_ERROR, "An another FPM instance seems to already listen on %s", ((struct sockaddr_un *) sa)->sun_path); + close(sock); return -1; } unlink( ((struct sockaddr_un *) sa)->sun_path); @@ -192,6 +193,7 @@ static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct if (wp->listen_address_domain == FPM_AF_UNIX) { umask(saved_umask); } + close(sock); return -1; } @@ -203,6 +205,7 @@ static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct if (wp->socket_uid != -1 || wp->socket_gid != -1) { if (0 > chown(path, wp->socket_uid, wp->socket_gid)) { zlog(ZLOG_SYSERROR, "failed to chown() the socket '%s'", wp->config->listen_address); + close(sock); return -1; } } @@ -210,6 +213,7 @@ static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct if (0 > listen(sock, wp->config->listen_backlog)) { zlog(ZLOG_SYSERROR, "failed to listen to address '%s'", wp->config->listen_address); + close(sock); return -1; } diff --git a/sapi/fpm/fpm/fpm_stdio.c b/sapi/fpm/fpm/fpm_stdio.c index 6a587d00ee..ebe43a278d 100644 --- a/sapi/fpm/fpm/fpm_stdio.c +++ b/sapi/fpm/fpm/fpm_stdio.c @@ -34,6 +34,7 @@ int fpm_stdio_init_main() /* {{{ */ if (0 > dup2(fd, STDIN_FILENO) || 0 > dup2(fd, STDOUT_FILENO)) { zlog(ZLOG_SYSERROR, "failed to init stdio: dup2()"); + close(fd); return -1; } close(fd); |