*.Makefile
*.so.*
*.a
+
+
+# Visual Studio uglies
+*.suo
+*.sln
+*.vcxproj
+*.vcxproj.filters
+*.vcxproj.user
+*.opensdf
+*.ncrunchsolution*
+*.sdf
+*.vsp
+*.psess
Uli Köhler <ukoehler@btronik.de>
Charlie Somerville <charlie@charliesomerville.com>
Fedor Indutny <fedor.indutny@gmail.com>
+runner <runner.mei@gmail.com>
+Alexis Campailla <alexis@janeasystems.com>
# 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
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;
}
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;
}
/* 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 <sys/types.h>
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
"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
"\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