changeset 471:31ee1b50354f release-0.1.10

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.
author Igor Sysoev <igor@sysoev.ru>
date Fri, 26 Nov 2004 09:33:59 +0000
parents 45b86532d9c8
children a004b617422d
files docs/xml/nginx/changes.xml src/core/nginx.h src/core/ngx_config.h src/http/ngx_http_parse.c src/os/unix/ngx_linux_config.h
diffstat 5 files changed, 38 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -6,6 +6,34 @@
             title="nginx">
 
 
+<changes ver="0.1.10" date="26.11.2004">
+
+<change type="bugfix">
+<para lang="ru">
+если в запросе без аргументов есть "//", "/./", "/../" или "%XX",
+то терялся последний символ в строке запроса;
+ошибка появилась в 0.1.9.
+</para>
+<para lang="en">
+if the request without arguments contains "//", "/./", "/../" or "%XX"
+then the lost character in the request line was lost;
+bug appeared in 0.1.9.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+исправление в версии 0.1.9 для файлов больше на Linux не работало.
+</para>
+<para lang="en">
+the fix in 0.1.9 for the files bigger than 2G on Linux
+did not work.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.1.9" date="25.11.2004">
 
 <change type="bugfix">
--- 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"
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -11,13 +11,6 @@
 #include <ngx_auto_headers.h>
 
 
-#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_ */
--- 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
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -61,7 +61,7 @@
 #include <sys/sendfile.h>
 #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