com php-src: Fix #67594 - invisible colon should be stripped off header name: sapi/cli/php_cli_server.c
| From: | Tjerk Anne Meesters | Date: | Sat, 12 Jul 2014 04:45:50 +0000 |
| Subject: | com php-src: Fix #67594 - invisible colon should be stripped off header name: sapi/cli/php_cli_server.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79444@lists.php.net to get a copy of this message | ||
Commit: 1684ba3c6f2f0aa8700363acbca98acf9f3afc45
Author: Tjerk Meesters <datibbaw@php.net> Sat, 12 Jul 2014 12:45:50 +0800
Parents: 377750cd8f9618498d05c0ac7a79b05a5c6794d4
Branches: PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=1684ba3c6f2f0aa8700363acbca98acf9f3afc45
Log:
Fix #67594 - invisible colon should be stripped off header name
Bugs:
https://bugs.php.net/67594
Changed paths:
M sapi/cli/php_cli_server.c
Diff:
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index 15b4f29..6cefa2d 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -1685,10 +1685,14 @@ static int
php_cli_server_client_read_request_on_header_value(php_http_parser *p
return 1;
}
{
- char *header_name = zend_str_tolower_dup(client->current_header_name,
client->current_header_name_len);
- zend_hash_add(&client->request.headers, header_name, client->current_header_name_len +
1, &value, sizeof(char *), NULL);
- zend_hash_add(&client->request.headers_original_case, client->current_header_name,
client->current_header_name_len + 1, &value, sizeof(char *), NULL);
- efree(header_name);
+ /* strip off the colon */
+ char *orig_header_name = estrndup(client->current_header_name,
client->current_header_name_len);
+ char *lc_header_name = zend_str_tolower_dup(client->current_header_name,
client->current_header_name_len);
+
+ zend_hash_add(&client->request.headers, lc_header_name, client->current_header_name_len
+ 1, &value, sizeof(char *), NULL);
+ zend_hash_add(&client->request.headers_original_case, orig_header_name,
client->current_header_name_len + 1, &value, sizeof(char *), NULL);
+ efree(lc_header_name);
+ efree(orig_header_name);
}
if (client->current_header_name_allocated) {