mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
Referer module: fixed regex matching against HTTPS referers.
When matching a compiled regex against value in the "Referer" header field, the length was calculated incorrectly for strings that start from "https://". This might cause matching to fail for regexes with end-of-line anchors. Patch by Liangbin Li.
This commit is contained in:
parent
65e37b4a12
commit
9aaf256e40
@ -147,10 +147,12 @@ ngx_http_referer_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
|
||||
|
||||
if (ngx_strncasecmp(ref, (u_char *) "http://", 7) == 0) {
|
||||
ref += 7;
|
||||
len -= 7;
|
||||
goto valid_scheme;
|
||||
|
||||
} else if (ngx_strncasecmp(ref, (u_char *) "https://", 8) == 0) {
|
||||
ref += 8;
|
||||
len -= 8;
|
||||
goto valid_scheme;
|
||||
}
|
||||
}
|
||||
@ -191,7 +193,7 @@ valid_scheme:
|
||||
ngx_int_t rc;
|
||||
ngx_str_t referer;
|
||||
|
||||
referer.len = len - 7;
|
||||
referer.len = len;
|
||||
referer.data = ref;
|
||||
|
||||
rc = ngx_regex_exec_array(rlcf->regex, &referer, r->connection->log);
|
||||
|
Loading…
Reference in New Issue
Block a user