Skip to content

Commit 9b4642d

Browse files
harinvadodarialtangvald
authored andcommitted
Bug#27306178: ERROR IN SERVER HANDSHAKE WHILE CONNECTING
WITH AUTH_SOCK PLUGIN USER Post push fix: Fixing 5.7 test issues. (cherry picked from commit 5c32d17f7d552acc1db9e52260f7d2601e0f1929)
1 parent 5be28f0 commit 9b4642d

File tree

3 files changed

+23
-26
lines changed

3 files changed

+23
-26
lines changed

mysql-test/suite/auth_sec/include/multiple_plugins.inc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ FLUSH PRIVILEGES;
5252
--echo # Change user tests
5353

5454
--connect(qa_test_1_conn, localhost, qa_test_1_user, qa_test_1_dest,,,,SSL)
55-
--change_user native, abcd
56-
SELECT CURRENT_USER();
5755
--change_user sha256, abcd
5856
SELECT CURRENT_USER();
5957
--change_user
@@ -70,8 +68,6 @@ SELECT CURRENT_USER();
7068
--connect(sha256_conn, localhost, sha256, abcd,,,,SSL)
7169
--change_user qa_test_1_user, qa_test_1_dest
7270
SELECT CURRENT_USER();
73-
--change_user native, abcd
74-
SELECT CURRENT_USER();
7571
--change_user
7672
SELECT CURRENT_USER();
7773

mysql-test/suite/auth_sec/r/multiple_plugins.result

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ FLUSH PRIVILEGES;
5555
# Change user tests
5656
SELECT CURRENT_USER();
5757
CURRENT_USER()
58-
native@localhost
59-
SELECT CURRENT_USER();
60-
CURRENT_USER()
6158
sha256@localhost
6259
SELECT CURRENT_USER();
6360
CURRENT_USER()
@@ -76,10 +73,7 @@ CURRENT_USER()
7673
qa_test_1_user@%
7774
SELECT CURRENT_USER();
7875
CURRENT_USER()
79-
native@localhost
80-
SELECT CURRENT_USER();
81-
CURRENT_USER()
82-
native@localhost
76+
qa_test_1_user@%
8377
# Drop users
8478
DROP USER qa_test_1_user;
8579
DROP USER qa_test_1_dest;
@@ -142,9 +136,6 @@ FLUSH PRIVILEGES;
142136
# Change user tests
143137
SELECT CURRENT_USER();
144138
CURRENT_USER()
145-
native@localhost
146-
SELECT CURRENT_USER();
147-
CURRENT_USER()
148139
sha256@localhost
149140
SELECT CURRENT_USER();
150141
CURRENT_USER()
@@ -163,10 +154,7 @@ CURRENT_USER()
163154
qa_test_1_user@%
164155
SELECT CURRENT_USER();
165156
CURRENT_USER()
166-
native@localhost
167-
SELECT CURRENT_USER();
168-
CURRENT_USER()
169-
native@localhost
157+
qa_test_1_user@%
170158
# Drop users
171159
DROP USER qa_test_1_user;
172160
DROP USER qa_test_1_dest;

sql-common/client.c

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6219,16 +6219,29 @@ static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
62196219

62206220
DBUG_ENTER("native_password_auth_client");
62216221

6222-
/* read the scramble */
6223-
if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
6224-
DBUG_RETURN(CR_ERROR);
62256222

6226-
if (pkt_len != SCRAMBLE_LENGTH + 1)
6227-
DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
6223+
if (((MCPVIO_EXT *)vio)->mysql_change_user)
6224+
{
6225+
/*
6226+
in mysql_change_user() the client sends the first packet.
6227+
we use the old scramble.
6228+
*/
6229+
pkt= (uchar*)mysql->scramble;
6230+
pkt_len= SCRAMBLE_LENGTH + 1;
6231+
}
6232+
else
6233+
{
6234+
/* read the scramble */
6235+
if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
6236+
DBUG_RETURN(CR_ERROR);
62286237

6229-
/* save it in MYSQL */
6230-
memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH);
6231-
mysql->scramble[SCRAMBLE_LENGTH] = 0;
6238+
if (pkt_len != SCRAMBLE_LENGTH + 1)
6239+
DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
6240+
6241+
/* save it in MYSQL */
6242+
memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH);
6243+
mysql->scramble[SCRAMBLE_LENGTH] = 0;
6244+
}
62326245

62336246
if (mysql->passwd[0])
62346247
{

0 commit comments

Comments
 (0)