summaryrefslogtreecommitdiff
path: root/src/configfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/configfile.c')
-rw-r--r--src/configfile.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/configfile.c b/src/configfile.c
index 9226ade8..7408ed0a 100644
--- a/src/configfile.c
+++ b/src/configfile.c
@@ -1241,6 +1241,18 @@ int config_set_defaults(server *srv) {
{ FDEVENT_HANDLER_UNSET, NULL }
};
+ if (!buffer_is_empty(srv->srvconf.changeroot)) {
+ if (-1 == stat(srv->srvconf.changeroot->ptr, &st1)) {
+ log_error_write(srv, __FILE__, __LINE__, "sb",
+ "server.chroot doesn't exist:", srv->srvconf.changeroot);
+ return -1;
+ }
+ if (!S_ISDIR(st1.st_mode)) {
+ log_error_write(srv, __FILE__, __LINE__, "sb",
+ "server.chroot isn't a directory:", srv->srvconf.changeroot);
+ return -1;
+ }
+ }
if (buffer_is_empty(s->document_root)) {
log_error_write(srv, __FILE__, __LINE__, "s",