]> git.kaiwu.me - njs.git/commitdiff
Modules: checking for duplicate js_set variables.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 9 Apr 2024 05:47:24 +0000 (22:47 -0700)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 9 Apr 2024 05:47:24 +0000 (22:47 -0700)
This closes #700 issue on Github.

nginx/ngx_http_js_module.c
nginx/ngx_stream_js_module.c

index c62495489864458d1d5b9dc258974debddddbd7a..21bcc26a6c97154313d6f323ceffc5ae30bfaeb1 100644 (file)
@@ -4773,6 +4773,12 @@ ngx_http_js_set(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     *fname = value[2];
 
+    if (v->get_handler == ngx_http_js_variable_set) {
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "variable \"%V\" is already declared", &value[1]);
+        return NGX_CONF_ERROR;
+    }
+
     v->get_handler = ngx_http_js_variable_set;
     v->data = (uintptr_t) fname;
 
index f064ab04bd95296b0000ff90b406afb8928a6679..088b5229abc6929207f98bb2a16fd7f449dc9568 100644 (file)
@@ -2217,6 +2217,12 @@ ngx_stream_js_set(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 
     *fname = value[2];
 
+    if (v->get_handler == ngx_stream_js_variable_set) {
+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                           "variable \"%V\" is already declared", &value[1]);
+        return NGX_CONF_ERROR;
+    }
+
     v->get_handler = ngx_stream_js_variable_set;
     v->data = (uintptr_t) fname;