diff --git a/src/core/nginx.c b/src/core/nginx.c index 88f22483f..464911f60 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -1232,9 +1232,25 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) if (ccf->working_directory.len) { + ngx_file_info_t fi; + if (ngx_conf_full_name(cycle, &ccf->working_directory, 0) != NGX_OK) { return NGX_CONF_ERROR; } + + if (ngx_file_info(ccf->working_directory.data, &fi) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, + ngx_file_info_n " \"%s\" failed", + ccf->working_directory.data); + return NGX_CONF_ERROR; + } + + if (!ngx_is_dir(&fi)) { + ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, + "\"%s\" is not a directory", + ccf->working_directory.data); + return NGX_CONF_ERROR; + } }