mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
ext/mysqli: internal updates (#19072)
* global struct size reduction. * connection port ini value sanity check addition.
This commit is contained in:
@@ -424,6 +424,19 @@ static const MYSQLND_REVERSE_API mysqli_reverse_api = {
|
||||
mysqli_convert_zv_to_mysqlnd
|
||||
};
|
||||
|
||||
static PHP_INI_MH(OnUpdateDefaultPort)
|
||||
{
|
||||
zend_long value = ZEND_ATOL(ZSTR_VAL(new_value));
|
||||
|
||||
if (value < 0 || value > USHRT_MAX) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
MyG(default_port) = (unsigned short)value;
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/* {{{ PHP_INI_BEGIN */
|
||||
PHP_INI_BEGIN()
|
||||
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()
|
||||
STD_PHP_INI_ENTRY("mysqli.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_ENTRY("mysqli.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_ENTRY("mysqli.default_pw", NULL, PHP_INI_ALL, OnUpdateString, default_pw, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_ENTRY("mysqli.default_port", "3306", PHP_INI_ALL, OnUpdateLong, default_port, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_ENTRY("mysqli.default_port", "3306", PHP_INI_ALL, OnUpdateDefaultPort, default_port, zend_mysqli_globals, mysqli_globals)
|
||||
#ifdef PHP_MYSQL_UNIX_SOCK_ADDR
|
||||
STD_PHP_INI_ENTRY("mysqli.default_socket", MYSQL_UNIX_ADDR,PHP_INI_ALL,OnUpdateStringUnempty, default_socket, zend_mysqli_globals, mysqli_globals)
|
||||
#else
|
||||
|
||||
@@ -236,21 +236,21 @@ extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * resul
|
||||
|
||||
|
||||
ZEND_BEGIN_MODULE_GLOBALS(mysqli)
|
||||
unsigned short default_port;
|
||||
bool allow_persistent;
|
||||
bool allow_local_infile;
|
||||
char *default_host;
|
||||
char *default_user;
|
||||
char *default_pw;
|
||||
char *default_socket;
|
||||
char *local_infile_directory;
|
||||
char *error_msg;
|
||||
zend_long num_links;
|
||||
zend_long max_links;
|
||||
zend_long num_active_persistent;
|
||||
zend_long num_inactive_persistent;
|
||||
zend_long max_persistent;
|
||||
bool allow_persistent;
|
||||
zend_ulong default_port;
|
||||
char *default_host;
|
||||
char *default_user;
|
||||
char *default_pw;
|
||||
char *default_socket;
|
||||
bool allow_local_infile;
|
||||
char *local_infile_directory;
|
||||
zend_long error_no;
|
||||
char *error_msg;
|
||||
zend_long report_mode;
|
||||
bool rollback_on_cached_plink;
|
||||
ZEND_END_MODULE_GLOBALS(mysqli)
|
||||
|
||||
21
ext/mysqli/tests/mysqli_default_port_error.phpt
Normal file
21
ext/mysqli/tests/mysqli_default_port_error.phpt
Normal file
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
default_port ini setting
|
||||
--EXTENSIONS--
|
||||
mysqli
|
||||
--FILE--
|
||||
<?php
|
||||
$orig_port = ini_get("mysqli.default_port");
|
||||
ini_set('mysqli.default_port', 65536);
|
||||
$new_port = ini_get("mysqli.default_port");
|
||||
var_dump($orig_port === $new_port);
|
||||
ini_set('mysqli.default_port', -1);
|
||||
$new_port = ini_get("mysqli.default_port");
|
||||
var_dump($orig_port === $new_port);
|
||||
ini_set('mysqli.default_port', $orig_port - 1);
|
||||
$new_port = ini_get("mysqli.default_port");
|
||||
var_dump($orig_port === $new_port);
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
Reference in New Issue
Block a user