aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2015-10-19 21:28:02 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2015-10-19 21:28:02 +0300
commitb9e0b9df446afa8a84d839bcf90b43d6504fc413 (patch)
treeb845a4f27ee2d30736e979d6228aac0703feec8e /src
parenta6befbb40f801a68f451c349bc02bc27762e68b7 (diff)
downloadnginx-b9e0b9df446afa8a84d839bcf90b43d6504fc413.tar.gz
nginx-b9e0b9df446afa8a84d839bcf90b43d6504fc413.zip
Fixed handling of empty root.
Previously, a configuration with "root" set to an empty string tried test a character at clcf->root.data[-1]. Additional test added to make sure this won't happen. Reported by Markus Linnala, see http://mailman.nginx.org/pipermail/nginx-devel/2015-August/007210.html.
Diffstat (limited to 'src')
-rw-r--r--src/http/ngx_http_core_module.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 36f00f61e..7a2960830 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -4489,7 +4489,9 @@ ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
clcf->alias = alias ? clcf->name.len : 0;
clcf->root = value[1];
- if (!alias && clcf->root.data[clcf->root.len - 1] == '/') {
+ if (!alias && clcf->root.len > 0
+ && clcf->root.data[clcf->root.len - 1] == '/')
+ {
clcf->root.len--;
}