Skip to content

Commit 68aa132

Browse files
committed
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #77932: File extensions are case-sensitive
2 parents 877a351 + 6f18d7e commit 68aa132

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ PHP NEWS
44

55
- Core:
66
. Fixed bug #79884 (PHP_CONFIG_FILE_PATH is meaningless). (cmb)
7+
. Fixed bug #77932 (File extensions are case-sensitive). (cmb)
78

89
06 Aug 2020, PHP 7.4.9
910

sapi/cli/php_cli_server.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,13 @@ static void append_essential_headers(smart_str* buffer, php_cli_server_client *c
372372

373373
static const char *get_mime_type(const php_cli_server *server, const char *ext, size_t ext_len) /* {{{ */
374374
{
375-
return (const char*)zend_hash_str_find_ptr(&server->extension_mime_types, ext, ext_len);
375+
char *ret;
376+
ALLOCA_FLAG(use_heap)
377+
char *ext_lower = do_alloca(ext_len + 1, use_heap);
378+
zend_str_tolower_copy(ext_lower, ext, ext_len);
379+
ret = zend_hash_str_find_ptr(&server->extension_mime_types, ext_lower, ext_len);
380+
free_alloca(ext_lower, use_heap);
381+
return (const char*)ret;
376382
} /* }}} */
377383

378384
PHP_FUNCTION(apache_request_headers) /* {{{ */
@@ -2222,9 +2228,12 @@ static int php_cli_server_dispatch_router(php_cli_server *server, php_cli_server
22222228
static int php_cli_server_dispatch(php_cli_server *server, php_cli_server_client *client) /* {{{ */
22232229
{
22242230
int is_static_file = 0;
2231+
const char *ext = client->request.ext;
22252232

22262233
SG(server_context) = client;
2227-
if (client->request.ext_len != 3 || memcmp(client->request.ext, "php", 3) || !client->request.path_translated) {
2234+
if (client->request.ext_len != 3
2235+
|| (ext[0] != 'p' && ext[0] != 'P') || (ext[1] != 'h' && ext[1] != 'H') || (ext[2] != 'p' && ext[2] != 'P')
2236+
|| !client->request.path_translated) {
22282237
is_static_file = 1;
22292238
}
22302239

0 commit comments

Comments
 (0)