[nginx] setting variable cause core when used by lua

洪志道 hongzhidao at gmail.com
Thu Feb 16 08:01:34 UTC 2017


Sorry, sent too much.

2017-02-16 16:00 GMT+08:00 洪志道 <hongzhidao at gmail.com>:

> 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/c77698ad/attachment.html>


More information about the nginx-devel mailing list