diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml index f460dbbac..7d2c1c247 100644 --- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -6,6 +6,34 @@ title="nginx"> + + + + +если в запросе без аргументов есть "//", "/./", "/../" или "%XX", +то терялся последний символ в строке запроса; +ошибка появилась в 0.1.9. + + +if the request without arguments contains "//", "/./", "/../" or "%XX" +then the lost character in the request line was lost; +bug appeared in 0.1.9. + + + + + +исправление в версии 0.1.9 для файлов больше на Linux не работало. + + +the fix in 0.1.9 for the files bigger than 2G on Linux +did not work. + + + + + + diff --git a/src/core/nginx.h b/src/core/nginx.h index d737d6b63..9b61fc959 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.1.9" +#define NGINX_VER "nginx/0.1.10" #define NGINX_VAR "NGINX" #define NGX_NEWPID_EXT ".newbin" diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h index 916b1b514..7d4463b09 100644 --- a/src/core/ngx_config.h +++ b/src/core/ngx_config.h @@ -11,13 +11,6 @@ #include -#if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8)) -#define NGX_MAX_UINT32_VALUE 0xffffffffLL -#else -#define NGX_MAX_UINT32_VALUE 0xffffffff -#endif - - #if defined __DragonFly__ && !defined __FreeBSD__ #define __FreeBSD__ 4 #define __FreeBSD_version 480101 @@ -135,4 +128,11 @@ typedef long ngx_flag_t; */ +#if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8)) +#define NGX_MAX_UINT32_VALUE 0xffffffffLL +#else +#define NGX_MAX_UINT32_VALUE 0xffffffff +#endif + + #endif /* _NGX_CONFIG_H_INCLUDED_ */ diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c index a4e7d8045..96ed49c74 100644 --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -686,7 +686,7 @@ ngx_int_t ngx_http_parse_complex_uri(ngx_http_request_t *r) ch = *p++; - while (p < r->uri_end && r->args_start == NULL) { + while (p <= r->uri_end && r->args_start == NULL) { /* * we use "ch = *p++" inside the cycle but this operation is safe diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h index 620b59d8c..84eaf5c6a 100644 --- a/src/os/unix/ngx_linux_config.h +++ b/src/os/unix/ngx_linux_config.h @@ -61,7 +61,7 @@ #include #else extern ssize_t sendfile(int s, int fd, int32_t *offset, size_t size); -#define NGX_SENDFILE_LIMIT (NGX_MAX_UINT32_VALUE + 1) +#define NGX_SENDFILE_LIMIT 0x80000000 #endif