diff options
author | Stefan Bühler <stbuehler@web.de> | 2013-08-30 13:14:59 +0000 |
---|---|---|
committer | Stefan Bühler <stbuehler@web.de> | 2013-08-30 13:14:59 +0000 |
commit | 92567b8b8fb3411fb01a5dcb6ad50514b8974638 (patch) | |
tree | 4e265e61f7a71eafce2d1f782c515ac15a18498e /src/configfile.c | |
parent | 916cf7cfc0e34649e999b959029a0dc9541a8117 (diff) | |
download | lighttpd-git-92567b8b8fb3411fb01a5dcb6ad50514b8974638.tar.gz |
[core] check whether server.chroot exists
From: Stefan Bühler <stbuehler@web.de>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2896 152afb58-edef-0310-8abb-c4023f1b3aa9
Diffstat (limited to 'src/configfile.c')
-rw-r--r-- | src/configfile.c | 12 |
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", |