Mercurial > hg > nginx
comparison src/http/ngx_http_core_module.c @ 6340:312472807db8 stable-1.8
Fixed segfault with try_files introduced by c985d90a8d1f.
If alias was used in a location given by a regular expression,
nginx used to do wrong thing in try_files if a location name (i.e.,
regular expression) was an exact prefix of URI. The following
configuration triggered a segmentation fault on a request to "/mail":
location ~ /mail {
alias /path/to/directory;
try_files $uri =404;
}
Reported by Per Hansson.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sun, 16 Aug 2015 10:51:16 +0300 |
parents | 42d9beeb22db |
children | 2797b4347a2a |
comparison
equal
deleted
inserted
replaced
6339:67422a0a8ed2 | 6340:312472807db8 |
---|---|
1270 | 1270 |
1271 path.len = e.pos - path.data; | 1271 path.len = e.pos - path.data; |
1272 | 1272 |
1273 *e.pos = '\0'; | 1273 *e.pos = '\0'; |
1274 | 1274 |
1275 if (alias && ngx_strncmp(name, clcf->name.data, alias) == 0) { | 1275 if (alias && alias != NGX_MAX_SIZE_T_VALUE |
1276 && ngx_strncmp(name, clcf->name.data, alias) == 0) | |
1277 { | |
1276 ngx_memmove(name, name + alias, len - alias); | 1278 ngx_memmove(name, name + alias, len - alias); |
1277 path.len -= alias; | 1279 path.len -= alias; |
1278 } | 1280 } |
1279 } | 1281 } |
1280 | 1282 |