[nginx] setting variable cause core when used by lua
洪志道
hongzhidao at gmail.com
Thu Feb 16 07:51:24 UTC 2017
Hi.
diff -r da46bfc484ef src/http/ngx_http_variables.c
--- a/src/http/ngx_http_variables.c Mon Feb 13 21:45:01 2017 +0300
+++ b/src/http/ngx_http_variables.c Wed Feb 08 10:31:53 2017 +0800
@@ -783,6 +783,10 @@
ssize_t s, *sp;
ngx_str_t val;
+ if (v->data == NULL) {
+ return;
+ }
+
val.len = v->len;
val.data = v->data;
The following will cause core file, I think it's better to deal with in
nginx.
server {
listen 8000;
location / {
content_by_lua_block {
ngx.var.limit_rate = size; # size is undefined.
ngx.say('hello lua');
}
}
============== set handler in lua-module ============
if (value_type == LUA_TNIL) {
vv->valid = 0;
vv->not_found = 1;
vv->no_cacheable = 0;
vv->data = NULL;
vv->len = 0;
} else {
vv->valid = 1;
vv->not_found = 0;
vv->no_cacheable = 0;
vv->data = val;
vv->len = len;
}
v->set_handler(r, vv, v->data);
===============================================
Thanks.
B.R.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20170216/886a660a/attachment.html>
More information about the nginx-devel
mailing list