From 275009d0bdece1cd9fe58ca34d1ab7586441ec30 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Mon, 6 Jul 2015 09:41:09 +1000 Subject: http parser code assumes char is signed A char can be either signed or unsigned, and on PowerPC and ARM it is unsigned. The following code will always be false on these architectures: if (c == -1) goto error; --- sapi/cli/php_http_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sapi/cli/php_http_parser.c') diff --git a/sapi/cli/php_http_parser.c b/sapi/cli/php_http_parser.c index d289e80f70..aa9f28638f 100644 --- a/sapi/cli/php_http_parser.c +++ b/sapi/cli/php_http_parser.c @@ -326,7 +326,8 @@ size_t php_http_parser_execute (php_http_parser *parser, const char *data, size_t len) { - char c, ch; + char ch; + signed char c; const char *p = data, *pe; size_t to_read; -- cgit v1.2.1 From 2d4ad66ff2e9f64e23461325f3c73bd5791653c2 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Tue, 14 Jul 2015 11:09:03 +0200 Subject: Fixed bug #69953 Added support for MKCALENDAR request method in CLI web server. --- sapi/cli/php_http_parser.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sapi/cli/php_http_parser.c') diff --git a/sapi/cli/php_http_parser.c b/sapi/cli/php_http_parser.c index 73c6d4c1fe..71730322e0 100644 --- a/sapi/cli/php_http_parser.c +++ b/sapi/cli/php_http_parser.c @@ -89,6 +89,7 @@ static const char *method_strings[] = , "LOCK" , "MKCOL" , "MOVE" + , "MKCALENDAR" , "PROPFIND" , "PROPPATCH" , "UNLOCK" @@ -583,7 +584,7 @@ size_t php_http_parser_execute (php_http_parser *parser, case 'G': parser->method = PHP_HTTP_GET; break; case 'H': parser->method = PHP_HTTP_HEAD; break; case 'L': parser->method = PHP_HTTP_LOCK; break; - case 'M': parser->method = PHP_HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH */ break; + case 'M': parser->method = PHP_HTTP_MKCOL; /* or MOVE, MKCALENDAR, MKACTIVITY, MERGE, M-SEARCH */ break; case 'N': parser->method = PHP_HTTP_NOTIFY; break; case 'O': parser->method = PHP_HTTP_OPTIONS; break; case 'P': parser->method = PHP_HTTP_POST; /* or PROPFIND or PROPPATCH or PUT */ break; @@ -622,6 +623,8 @@ size_t php_http_parser_execute (php_http_parser *parser, } else if (parser->method == PHP_HTTP_MKCOL) { if (index == 1 && ch == 'O') { parser->method = PHP_HTTP_MOVE; + } else if (index == 3 && ch == 'A') { + parser->method = PHP_HTTP_MKCALENDAR; } else if (index == 1 && ch == 'E') { parser->method = PHP_HTTP_MERGE; } else if (index == 1 && ch == '-') { -- cgit v1.2.1