diff src/core/ngx_file.c @ 5377:cec155f07c84

Improved check for duplicate path names in ngx_add_path(). The same path names with different "data" context should not be allowed. In particular it rejects configurations like this: proxy_cache_path /var/cache/ keys_zone=one:10m max_size=1g inactive=5m; proxy_cache_path /var/cache/ keys_zone=two:20m max_size=4m inactive=30s;
author Valentin Bartenev <vbart@nginx.com>
date Mon, 16 Sep 2013 18:49:23 +0400
parents dd9cb4edf499
children 570677a06dce
line wrap: on
line diff
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -501,6 +501,14 @@ ngx_add_path(ngx_conf_t *cf, ngx_path_t 
         if (p[i]->name.len == path->name.len
             && ngx_strcmp(p[i]->name.data, path->name.data) == 0)
         {
+            if (p[i]->data != path->data) {
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                   "the same path name \"%V\" "
+                                   "used in %s:%ui and",
+                                   &p[i]->name, p[i]->conf_file, p[i]->line);
+                return NGX_ERROR;
+            }
+
             for (n = 0; n < 3; n++) {
                 if (p[i]->level[n] != path->level[n]) {
                     if (path->conf_file == NULL) {