From: Fedor Indutny Date: Tue, 28 Jan 2014 23:23:52 +0000 (+0400) Subject: deps: update http_parser to 2.2.1 X-Git-Tag: v0.11.11~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=597eb6a5aebbc2afbd76d16e568a86ed28509bc7;p=platform%2Fupstream%2Fnodejs.git deps: update http_parser to 2.2.1 Main changes: * Fixed content-length and chunk-size overflow test --- diff --git a/deps/http_parser/.gitignore b/deps/http_parser/.gitignore index 5d12d15..594f304 100644 --- a/deps/http_parser/.gitignore +++ b/deps/http_parser/.gitignore @@ -12,3 +12,16 @@ parsertrace_g *.Makefile *.so.* *.a + + +# Visual Studio uglies +*.suo +*.sln +*.vcxproj +*.vcxproj.filters +*.vcxproj.user +*.opensdf +*.ncrunchsolution* +*.sdf +*.vsp +*.psess diff --git a/deps/http_parser/AUTHORS b/deps/http_parser/AUTHORS index 3527d16..c3c2b45 100644 --- a/deps/http_parser/AUTHORS +++ b/deps/http_parser/AUTHORS @@ -45,3 +45,5 @@ Chris Dickinson Uli Köhler Charlie Somerville Fedor Indutny +runner +Alexis Campailla diff --git a/deps/http_parser/Makefile b/deps/http_parser/Makefile index 0fd07d8..504c525 100644 --- a/deps/http_parser/Makefile +++ b/deps/http_parser/Makefile @@ -19,7 +19,7 @@ # IN THE SOFTWARE. PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"') -SONAME ?= libhttp_parser.so.2.2 +SONAME ?= libhttp_parser.so.2.2.1 CC?=gcc AR?=ar diff --git a/deps/http_parser/http_parser.c b/deps/http_parser/http_parser.c index b9dabb8..a131a38 100644 --- a/deps/http_parser/http_parser.c +++ b/deps/http_parser/http_parser.c @@ -1509,8 +1509,8 @@ size_t http_parser_execute (http_parser *parser, t *= 10; t += ch - '0'; - /* Overflow? */ - if (t < parser->content_length || t == ULLONG_MAX) { + /* Overflow? Test against a conservative limit for simplicity. */ + if ((ULLONG_MAX - 10) / 10 < parser->content_length) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); goto error; } @@ -1782,8 +1782,8 @@ size_t http_parser_execute (http_parser *parser, t *= 16; t += unhex_val; - /* Overflow? */ - if (t < parser->content_length || t == ULLONG_MAX) { + /* Overflow? Test against a conservative limit for simplicity. */ + if ((ULLONG_MAX - 16) / 16 < parser->content_length) { SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); goto error; } diff --git a/deps/http_parser/http_parser.h b/deps/http_parser/http_parser.h index 1a91c23..3e28816 100644 --- a/deps/http_parser/http_parser.h +++ b/deps/http_parser/http_parser.h @@ -27,7 +27,7 @@ extern "C" { /* Also update SONAME in the Makefile whenever you change these. */ #define HTTP_PARSER_VERSION_MAJOR 2 #define HTTP_PARSER_VERSION_MINOR 2 -#define HTTP_PARSER_VERSION_PATCH 0 +#define HTTP_PARSER_VERSION_PATCH 1 #include #if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600) diff --git a/deps/http_parser/test.c b/deps/http_parser/test.c index 6a05b0d..9aaa5ad 100644 --- a/deps/http_parser/test.c +++ b/deps/http_parser/test.c @@ -2938,7 +2938,7 @@ test_header_content_length_overflow_error (void) "HTTP/1.1 200 OK\r\n" \ "Content-Length: " #size "\r\n" \ "\r\n" - const char a[] = X(18446744073709551614); /* 2^64-2 */ + const char a[] = X(1844674407370955160); /* 2^64 / 10 - 1 */ const char b[] = X(18446744073709551615); /* 2^64-1 */ const char c[] = X(18446744073709551616); /* 2^64 */ #undef X @@ -2956,7 +2956,7 @@ test_chunk_content_length_overflow_error (void) "\r\n" \ #size "\r\n" \ "..." - const char a[] = X(FFFFFFFFFFFFFFFE); /* 2^64-2 */ + const char a[] = X(FFFFFFFFFFFFFFE); /* 2^64 / 16 - 1 */ const char b[] = X(FFFFFFFFFFFFFFFF); /* 2^64-1 */ const char c[] = X(10000000000000000); /* 2^64 */ #undef X