Skip to content

Commit b9a7004

Browse files
committed
connection port ini value sanity check addition.
1 parent d55bfe4 commit b9a7004

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

ext/mysqli/mysqli.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,19 @@ static const MYSQLND_REVERSE_API mysqli_reverse_api = {
424424
mysqli_convert_zv_to_mysqlnd
425425
};
426426

427+
static PHP_INI_MH(OnUpdateDefaultPort)
428+
{
429+
zend_long value = ZEND_ATOL(ZSTR_VAL(new_value));
430+
431+
if (value < 0 || value > USHRT_MAX) {
432+
return FAILURE;
433+
}
434+
435+
MyG(default_port) = (unsigned short)value;
436+
437+
return SUCCESS;
438+
}
439+
427440
/* {{{ PHP_INI_BEGIN */
428441
PHP_INI_BEGIN()
429442
STD_PHP_INI_ENTRY_EX("mysqli.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_links, zend_mysqli_globals, mysqli_globals, display_link_numbers)
@@ -433,7 +446,7 @@ PHP_INI_BEGIN()
433446
STD_PHP_INI_ENTRY("mysqli.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, zend_mysqli_globals, mysqli_globals)
434447
STD_PHP_INI_ENTRY("mysqli.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, zend_mysqli_globals, mysqli_globals)
435448
STD_PHP_INI_ENTRY("mysqli.default_pw", NULL, PHP_INI_ALL, OnUpdateString, default_pw, zend_mysqli_globals, mysqli_globals)
436-
STD_PHP_INI_ENTRY("mysqli.default_port", "3306", PHP_INI_ALL, OnUpdateLong, default_port, zend_mysqli_globals, mysqli_globals)
449+
STD_PHP_INI_ENTRY("mysqli.default_port", "3306", PHP_INI_ALL, OnUpdateDefaultPort, default_port, zend_mysqli_globals, mysqli_globals)
437450
#ifdef PHP_MYSQL_UNIX_SOCK_ADDR
438451
STD_PHP_INI_ENTRY("mysqli.default_socket", MYSQL_UNIX_ADDR,PHP_INI_ALL,OnUpdateStringUnempty, default_socket, zend_mysqli_globals, mysqli_globals)
439452
#else

0 commit comments

Comments
 (0)