randomize(controlcookie, sizeof controlcookie / 2);
bin2hex(controlcookie, controlcookie, sizeof controlcookie / 2);
+ mode_t mask = umask(0);
+ umask(mask | 077);
FILE *f = fopen(pidfilename, "w");
+ umask(mask);
+
if(!f) {
logger(DEBUG_ALWAYS, LOG_ERR, "Cannot write control socket cookie file %s: %s", pidfilename, strerror(errno));
return false;
}
-#ifdef HAVE_FCHMOD
- fchmod(fileno(f), 0600);
-#else
- chmod(pidfilename, 0600);
-#endif
// Get the address and port of the first listening socket
char *localhost = NULL;
// Make sure we have a valid address, and map 0.0.0.0 and :: to 127.0.0.1 and ::1.
if(getsockname(listen_socket[0].tcp.fd, (struct sockaddr *)&sa, &len)) {
- xasprintf(&localhost, "127.0.0.1 port %d", myport);
+ xasprintf(&localhost, "127.0.0.1 port %s", myport);
} else {
if(sa.sa.sa_family == AF_INET) {
if(sa.in.sin_addr.s_addr == 0)