diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c index 6d41cc720..2f14b3500 100644 --- a/src/http/ngx_http_script.c +++ b/src/http/ngx_http_script.c @@ -645,7 +645,7 @@ ngx_http_script_run(ngx_http_request_t *r, ngx_str_t *value, e.request = r; e.flushed = 1; - n = len; + n = 0; while (*(uintptr_t *) e.ip) { lcode = *(ngx_http_script_len_code_pt *) e.ip; @@ -653,8 +653,8 @@ ngx_http_script_run(ngx_http_request_t *r, ngx_str_t *value, } - value->len = n; - value->data = ngx_pnalloc(r->pool, n); + value->len = n + len; + value->data = ngx_pnalloc(r->pool, n + len); if (value->data == NULL) { return NULL; } diff --git a/src/stream/ngx_stream_script.c b/src/stream/ngx_stream_script.c index 54e5dd559..4ae10d5ce 100644 --- a/src/stream/ngx_stream_script.c +++ b/src/stream/ngx_stream_script.c @@ -521,7 +521,7 @@ ngx_stream_script_run(ngx_stream_session_t *s, ngx_str_t *value, e.session = s; e.flushed = 1; - n = len; + n = 0; while (*(uintptr_t *) e.ip) { lcode = *(ngx_stream_script_len_code_pt *) e.ip; @@ -529,8 +529,8 @@ ngx_stream_script_run(ngx_stream_session_t *s, ngx_str_t *value, } - value->len = n; - value->data = ngx_pnalloc(s->connection->pool, n); + value->len = n + len; + value->data = ngx_pnalloc(s->connection->pool, n + len); if (value->data == NULL) { return NULL; }