Skip to content

Commit 0e2858d

Browse files
committed
modsecurity: skip response headers with hash=0
1 parent 0c34e46 commit 0e2858d

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/ngx_http_modsecurity_header_filter.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ngx_http_modsecurity_header_filter(ngx_http_request_t *r)
4343
ngx_uint_t i, status;
4444
ngx_pool_t *old_pool;
4545
ngx_list_part_t *part;
46-
ngx_table_elt_t *data;
46+
ngx_table_elt_t *header;
4747
ngx_http_modsecurity_ctx_t *ctx;
4848

4949

@@ -59,29 +59,30 @@ ngx_http_modsecurity_header_filter(ngx_http_request_t *r)
5959
ctx->processed = 1;
6060

6161
part = &r->headers_out.headers.part;
62-
data = part->elts;
62+
header = part->elts;
6363

64-
for (i = 0 ;; i++)
65-
{
66-
if (i >= part->nelts)
67-
{
64+
for (i = 0; /* void */; i++) {
65+
66+
if (i >= part->nelts) {
6867
if (part->next == NULL) {
6968
break;
7069
}
7170

7271
part = part->next;
73-
data = part->elts;
72+
header = part->elts;
7473
i = 0;
7574
}
7675

76+
if (header[i].hash == 0) {
77+
continue;
78+
}
79+
7780
/*
7881
* Doing this ugly cast here, explanation on the request_header
7982
*/
8083
msc_add_n_response_header(ctx->modsec_transaction,
81-
(const unsigned char *) data[i].key.data,
82-
data[i].key.len,
83-
(const unsigned char *) data[i].value.data,
84-
data[i].value.len);
84+
(const unsigned char *) header[i].key.data, header[i].key.len,
85+
(const unsigned char *) header[i].value.data, header[i].value.len);
8586
}
8687

8788
/* prepare extra paramters for msc_process_response_headers() */

0 commit comments

Comments
 (0)