From 8c7ba85585a26a7245abab96e93c7d2d5af97af5 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 19 Jan 2026 18:52:54 +0000 Subject: [PATCH] Drop extranous parameter --- UPGRADING.INTERNALS | 4 ++++ ext/mysqlnd/mysqlnd_auth.c | 25 ++++++++----------------- ext/mysqlnd/mysqlnd_auth.h | 3 --- ext/mysqlnd/mysqlnd_commands.c | 3 +-- ext/mysqlnd/mysqlnd_connection.c | 2 +- ext/mysqlnd/mysqlnd_structs.h | 1 - 6 files changed, 14 insertions(+), 24 deletions(-) diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index 2132006540c40..1b041da5affed 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -74,6 +74,10 @@ PHP 8.6 INTERNALS UPGRADE NOTES - ext/mbstring: . Added GB18030-2022 to default encoding list for zh-CN. +- ext/mysqlnd: + . Dropped session_options parameter from all methods in mysqlnd_auth. + The same information is present in conn->options and should be used instead. + - ext/standard: . _php_error_log() now has a formal return type of zend_result. . _php_error_log() now accepts zend_string* values instead of char*. diff --git a/ext/mysqlnd/mysqlnd_auth.c b/ext/mysqlnd/mysqlnd_auth.c index 691375b1a6959..07c3938309058 100644 --- a/ext/mysqlnd/mysqlnd_auth.c +++ b/ext/mysqlnd/mysqlnd_auth.c @@ -43,7 +43,6 @@ mysqlnd_run_authentication( const MYSQLND_STRING auth_plugin_data, const char * const auth_protocol, const unsigned int charset_no, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags, const bool silent, const bool is_change_user @@ -110,7 +109,7 @@ mysqlnd_run_authentication( scrambled_data = auth_plugin->methods.get_auth_data( NULL, &scrambled_data_len, conn, user, passwd, passwd_len, plugin_data, plugin_data_len, - session_options, conn->protocol_frame_codec->data, + conn->protocol_frame_codec->data, mysql_flags); } @@ -118,7 +117,7 @@ mysqlnd_run_authentication( goto end; } if (FALSE == is_change_user) { - ret = mysqlnd_auth_handshake(conn, user, passwd, passwd_len, db, db_len, session_options, mysql_flags, + ret = mysqlnd_auth_handshake(conn, user, passwd, passwd_len, db, db_len, mysql_flags, charset_no, first_call, requested_protocol, @@ -177,14 +176,13 @@ static enum_func_status mysqlnd_switch_to_ssl_if_needed(MYSQLND_CONN_DATA * const conn, unsigned int charset_no, const size_t server_capabilities, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags) { enum_func_status ret = FAIL; const MYSQLND_CHARSET * charset; DBG_ENTER("mysqlnd_switch_to_ssl_if_needed"); - if (session_options->charset_name && (charset = mysqlnd_find_charset_name(session_options->charset_name))) { + if (conn->options->charset_name && (charset = mysqlnd_find_charset_name(conn->options->charset_name))) { charset_no = charset->nr; } @@ -210,18 +208,17 @@ mysqlnd_connect_run_authentication( const char * const authentication_protocol, const unsigned int charset_no, const size_t server_capabilities, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags ) { enum_func_status ret = FAIL; DBG_ENTER("mysqlnd_connect_run_authentication"); - ret = mysqlnd_switch_to_ssl_if_needed(conn, charset_no, server_capabilities, session_options, mysql_flags); + ret = mysqlnd_switch_to_ssl_if_needed(conn, charset_no, server_capabilities, mysql_flags); if (PASS == ret) { ret = mysqlnd_run_authentication(conn, user, passwd, passwd_len, db, db_len, authentication_plugin_data, authentication_protocol, - charset_no, session_options, mysql_flags, FALSE /*silent*/, FALSE/*is_change*/); + charset_no, mysql_flags, FALSE /*silent*/, FALSE/*is_change*/); } DBG_RETURN(ret); } @@ -236,7 +233,6 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn, const size_t passwd_len, const char * const db, const size_t db_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags, const unsigned int server_charset_no, const bool use_full_blown_auth_packet, @@ -281,8 +277,8 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn, conn->payload_decoder_factory->m.init_auth_packet(&auth_packet); auth_packet.client_flags = mysql_flags; - auth_packet.max_packet_size = session_options->max_allowed_packet; - if (session_options->charset_name && (charset = mysqlnd_find_charset_name(session_options->charset_name))) { + auth_packet.max_packet_size = conn->options->max_allowed_packet; + if (conn->options->charset_name && (charset = mysqlnd_find_charset_name(conn->options->charset_name))) { auth_packet.charset_no = charset->nr; } else { auth_packet.charset_no = server_charset_no; @@ -556,7 +552,6 @@ mysqlnd_native_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self size_t * auth_data_len, MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, const size_t passwd_len, zend_uchar * auth_plugin_data, const size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags ) @@ -617,7 +612,6 @@ mysqlnd_pam_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self, size_t * auth_data_len, MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, const size_t passwd_len, zend_uchar * auth_plugin_data, const size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags ) @@ -820,7 +814,6 @@ mysqlnd_sha256_public_encrypt(MYSQLND_CONN_DATA * conn, mysqlnd_rsa_t server_pub /* {{{ mysqlnd_sha256_get_rsa_key */ static mysqlnd_rsa_t mysqlnd_sha256_get_rsa_key(MYSQLND_CONN_DATA * conn, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data ) { @@ -894,7 +887,6 @@ mysqlnd_sha256_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self size_t * auth_data_len, MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, const size_t passwd_len, zend_uchar * auth_plugin_data, const size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags ) @@ -916,7 +908,7 @@ mysqlnd_sha256_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self ret[passwd_len] = '\0'; } else { *auth_data_len = 0; - server_public_key = mysqlnd_sha256_get_rsa_key(conn, session_options, pfc_data); + server_public_key = mysqlnd_sha256_get_rsa_key(conn, pfc_data); if (server_public_key) { ALLOCA_FLAG(use_heap); @@ -1095,7 +1087,6 @@ mysqlnd_caching_sha2_get_auth_data(struct st_mysqlnd_authentication_plugin * sel size_t * auth_data_len, MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, const size_t passwd_len, zend_uchar * auth_plugin_data, const size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags ) diff --git a/ext/mysqlnd/mysqlnd_auth.h b/ext/mysqlnd/mysqlnd_auth.h index 2ba2321a77ade..9ce14a2fc5212 100644 --- a/ext/mysqlnd/mysqlnd_auth.h +++ b/ext/mysqlnd/mysqlnd_auth.h @@ -24,7 +24,6 @@ mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn, const size_t passwd_len, const char * const db, const size_t db_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags, const unsigned int server_charset_no, const bool use_full_blown_auth_packet, @@ -75,7 +74,6 @@ mysqlnd_connect_run_authentication( const char * const authentication_protocol, const unsigned int charset_no, const size_t server_capabilities, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags ); @@ -90,7 +88,6 @@ mysqlnd_run_authentication( const MYSQLND_STRING auth_plugin_data, const char * const auth_protocol, const unsigned int charset_no, - const MYSQLND_SESSION_OPTIONS * const session_options, const zend_ulong mysql_flags, const bool silent, const bool is_change_user diff --git a/ext/mysqlnd/mysqlnd_commands.c b/ext/mysqlnd/mysqlnd_commands.c index 52731425e1808..a3aad43bbd4b7 100644 --- a/ext/mysqlnd/mysqlnd_commands.c +++ b/ext/mysqlnd/mysqlnd_commands.c @@ -623,8 +623,7 @@ MYSQLND_METHOD(mysqlnd_command, handshake)(MYSQLND_CONN_DATA * const conn, const if (FAIL == mysqlnd_connect_run_authentication(conn, user, passwd, db, db_len, (size_t) passwd_len, greet_packet.authentication_plugin_data, greet_packet.auth_protocol, - greet_packet.charset_no, greet_packet.server_capabilities, - conn->options, mysql_flags)) + greet_packet.charset_no, greet_packet.server_capabilities, mysql_flags)) { goto err; } diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 9065aaf579df5..4a9732a028956 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -1386,7 +1386,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn, /* XXX: passwords that have \0 inside work during auth, but in this case won't work with change user */ ret = mysqlnd_run_authentication(conn, user, passwd, passwd_len, db, strlen(db), conn->authentication_plugin_data, conn->options->auth_protocol, - 0 /*charset not used*/, conn->options, conn->server_capabilities, silent, TRUE/*is_change*/); + 0 /*charset not used*/, conn->server_capabilities, silent, TRUE/*is_change*/); /* Here we should close all statements. Unbuffered queries should not be a diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index 9cbbf4a64f144..ce102650b03c9 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -1323,7 +1323,6 @@ typedef zend_uchar * (*func_auth_plugin__get_auth_data)(struct st_mysqlnd_authen size_t * auth_data_len, MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, const size_t passwd_len, zend_uchar * auth_plugin_data, size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags );