# HG changeset patch # User Igor Sysoev # Date 1101461639 0 # Node ID 31ee1b50354fb829564b81a6f34e8d6ceb2d3f48 # Parent 45b86532d9c8eeaa5fded9072b51f065905fb0c1 nginx-0.1.10-RELEASE import *) Bugfix: if the request without arguments contains "//", "/./", "/../" or "%XX" then the lost character in the request line was lost; the bug had appeared in 0.1.9. *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did not work. diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml --- 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 --- 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 --- 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 --- 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 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 --- 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