From 137e58453829e7c1b014f1ba334d657b3fdd2a38 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sun, 15 Feb 2015 11:34:02 +0100 Subject: [PATCH] force relative names on the socket file to allow it being accessible from main and workers --- src/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main.c b/src/main.c index aea7bb95..24058ecd 100644 --- a/src/main.c +++ b/src/main.c @@ -892,6 +892,7 @@ int main(int argc, char** argv) struct proc_st *ctmp = NULL, *cpos; fd_set rd_set, wr_set; int n = 0, ret, flags; + char *p; #ifdef HAVE_PSELECT struct timespec ts; #else @@ -1034,7 +1035,10 @@ int main(int argc, char** argv) tls_load_certs(s, &creds); s->secmod_addr.sun_family = AF_UNIX; - strlcpy(s->secmod_addr.sun_path, s->socket_file, sizeof(s->secmod_addr.sun_path)); + p = s->socket_file; + if (s->config->chroot_dir) /* if we are on chroot make the socket file path relative */ + while (*p == '/') p++; + strlcpy(s->secmod_addr.sun_path, p, sizeof(s->secmod_addr.sun_path)); s->secmod_addr_len = SUN_LEN(&s->secmod_addr); /* initialize memory for worker process */