nginx: Fix memleak in nix-etag patch

The original patch introduced a new "real" variable which gets populated
(and allocated) via ngx_realpath(). It's properly freed in error
conditions but it won't be freed if ngx_http_set_etag returns
successfully.

Adding another ngx_free() just before returning fixes that memory leak.

I also fixed a small indentation issue along the way.

Signed-off-by: aszlig <aszlig@nix.build>
This commit is contained in:
aszlig 2019-04-18 08:13:41 +02:00
parent 1da8eec00f
commit af5a3ce474
No known key found for this signature in database
GPG Key ID: 684089CE67EBB691

View File

@ -19,7 +19,7 @@ index c57ec00c..b7992de2 100644
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
@@ -1598,16 +1599,59 @@ ngx_http_set_etag(ngx_http_request_t *r) @@ -1598,16 +1599,61 @@ ngx_http_set_etag(ngx_http_request_t *r)
etag->hash = 1; etag->hash = 1;
ngx_str_set(&etag->key, "ETag"); ngx_str_set(&etag->key, "ETag");
@ -82,6 +82,8 @@ index c57ec00c..b7992de2 100644
+ r->headers_out.content_length_n) + r->headers_out.content_length_n)
+ - etag->value.data; + - etag->value.data;
+ } + }
+
+ ngx_free(real);
r->headers_out.etag = etag; r->headers_out.etag = etag;