Skip to content

Commit 9370465

Browse files
harinvadodariaHery Ramilison
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 708475d commit 9370465

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
@@ -6195,16 +6195,29 @@ static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
61956195

61966196
DBUG_ENTER("native_password_auth_client");
61976197

6198-
/* read the scramble */
6199-
if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
6200-
DBUG_RETURN(CR_ERROR);
62016198

6202-
if (pkt_len != SCRAMBLE_LENGTH + 1)
6203-
DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
6199+
if (((MCPVIO_EXT *)vio)->mysql_change_user)
6200+
{
6201+
/*
6202+
in mysql_change_user() the client sends the first packet.
6203+
we use the old scramble.
6204+
*/
6205+
pkt= (uchar*)mysql->scramble;
6206+
pkt_len= SCRAMBLE_LENGTH + 1;
6207+
}
6208+
else
6209+
{
6210+
/* read the scramble */
6211+
if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
6212+
DBUG_RETURN(CR_ERROR);
62046213

6205-
/* save it in MYSQL */
6206-
memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH);
6207-
mysql->scramble[SCRAMBLE_LENGTH] = 0;
6214+
if (pkt_len != SCRAMBLE_LENGTH + 1)
6215+
DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
6216+
6217+
/* save it in MYSQL */
6218+
memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH);
6219+
mysql->scramble[SCRAMBLE_LENGTH] = 0;
6220+
}
62086221

62096222
if (mysql->passwd[0])
62106223
{

0 commit comments

Comments
 (0)