Skip to content

Commit 139a692

Browse files
committed
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1: Fix GH-11440: authentication to a sha256_password account fails over SSL
2 parents 82eda28 + 94127c5 commit 139a692

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ PHP NEWS
2323
. Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options
2424
parameter in signature. (ilutov)
2525

26+
- MySQLnd:
27+
. Fixed bug GH-11440 (authentication to a sha256_password account fails over
28+
SSL). (nielsdos)
29+
2630
- Opcache:
2731
. Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or
2832
opcache_get_status() / phpinfo() is wrong). (nielsdos)

ext/mysqlnd/mysqlnd_auth.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -912,9 +912,12 @@ mysqlnd_sha256_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self
912912
if (conn->vio->data->ssl) {
913913
DBG_INF("simple clear text under SSL");
914914
/* clear text under SSL */
915-
*auth_data_len = passwd_len;
916-
ret = malloc(passwd_len);
915+
/* NUL termination byte required: https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase_authentication_methods_clear_text_password.html
916+
* (this is similar to bug #78680, but now as GH-11440) */
917+
*auth_data_len = passwd_len + 1;
918+
ret = malloc(passwd_len + 1);
917919
memcpy(ret, passwd, passwd_len);
920+
ret[passwd_len] = '\0';
918921
} else {
919922
*auth_data_len = 0;
920923
server_public_key = mysqlnd_sha256_get_rsa_key(conn, session_options, pfc_data);

0 commit comments

Comments
 (0)