Mercurial > hg > nginx
view src/http/ngx_http_spdy_module.h @ 6244:055d1f63960a
Fixed segfault with incorrect location nesting.
A configuration with a named location inside a zero-length prefix
or regex location used to trigger a segmentation fault, as
ngx_http_core_location() failed to properly detect if a nested location
was created. Example configuration to reproduce the problem:
location "" {
location @foo {}
}
Fix is to not rely on a parent location name length, but rather check
command type we are currently parsing.
Identical fix is also applied to ngx_http_rewrite_if(), which used to
incorrectly assume the "if" directive is on server{} level in such
locations.
Reported by Markus Linnala.
Found with afl-fuzz.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 11 Sep 2015 17:04:04 +0300 |
parents | e5fb14e85040 |
children |
line wrap: on
line source
/* * Copyright (C) Nginx, Inc. * Copyright (C) Valentin V. Bartenev */ #ifndef _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ #define _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_http.h> typedef struct { size_t recv_buffer_size; u_char *recv_buffer; } ngx_http_spdy_main_conf_t; typedef struct { size_t pool_size; ngx_uint_t concurrent_streams; ngx_uint_t streams_index_mask; ngx_msec_t recv_timeout; ngx_msec_t keepalive_timeout; ngx_int_t headers_comp; } ngx_http_spdy_srv_conf_t; typedef struct { size_t chunk_size; } ngx_http_spdy_loc_conf_t; extern ngx_module_t ngx_http_spdy_module; #endif /* _NGX_HTTP_SPDY_MODULE_H_INCLUDED_ */