From 4b8ef06217d5088ade9c19ac74193c64ad22375a Mon Sep 17 00:00:00 2001 From: Rucha Deodhar Date: Tue, 1 Jun 2021 20:12:56 +0530 Subject: MDEV-17943: Unfortunate error code/message upon SET DEFAULT ROLE FOR Analysis: Wrong error message string Fix: Change error label and error message string --- libmariadb | 2 +- mysql-test/suite/roles/set_default_role_invalid.result | 8 ++++++++ mysql-test/suite/roles/set_default_role_invalid.test | 11 +++++++++++ sql/share/errmsg-utf8.txt | 8 ++++---- sql/sql_acl.cc | 6 +++--- 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/libmariadb b/libmariadb index 180c543704d..9e31cc7a7fe 160000 --- a/libmariadb +++ b/libmariadb @@ -1 +1 @@ -Subproject commit 180c543704d627a50a52aaf60e24ca14e0ec4686 +Subproject commit 9e31cc7a7feaada8c3134aab176982c4164df069 diff --git a/mysql-test/suite/roles/set_default_role_invalid.result b/mysql-test/suite/roles/set_default_role_invalid.result index 53ee464e2c1..b31719b9301 100644 --- a/mysql-test/suite/roles/set_default_role_invalid.result +++ b/mysql-test/suite/roles/set_default_role_invalid.result @@ -128,3 +128,11 @@ a % r1 b % r2 DROP ROLE r1, r2; DROP USER a, b; +# +# Beginning of 10.2 test +# +# MDEV-17943: Unfortunate error code/message upon SET DEFAULT ROLE FOR +# +SET DEFAULT ROLE NONE FOR foo; +ERROR 0L000: The target user is invalid +# End of 10.2 test diff --git a/mysql-test/suite/roles/set_default_role_invalid.test b/mysql-test/suite/roles/set_default_role_invalid.test index 02fca1107e2..e290562365a 100644 --- a/mysql-test/suite/roles/set_default_role_invalid.test +++ b/mysql-test/suite/roles/set_default_role_invalid.test @@ -167,3 +167,14 @@ change_user root; SELECT user, host, default_role FROM mysql.user where user='a' or user='b'; DROP ROLE r1, r2; DROP USER a, b; + +--echo # +--echo # Beginning of 10.2 test +--echo # +--echo # MDEV-17943: Unfortunate error code/message upon SET DEFAULT ROLE FOR +--echo # + +--error ER_INVALID_TARGET_USER +SET DEFAULT ROLE NONE FOR foo; + +--echo # End of 10.2 test diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index 2d4e0562d8f..3f51ebb5289 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -7284,10 +7284,10 @@ ER_INVALID_ROLE OP000 eng "Invalid role specification %`s" hindi "अमान्य रोल विनिर्देश %`s" rum "Rolul %`s este invalid" -ER_INVALID_CURRENT_USER 0L000 - eng "The current user is invalid" - hindi "वर्तमान यूज़र अमान्य है" - rum "Utilizatorul curent este invalid" +ER_INVALID_TARGET_USER 0L000 + eng "The target user is invalid" + hindi "लक्षित यूज़र अमान्य है" + rum "Utilizatorul specificat este invalid" ER_CANNOT_GRANT_ROLE eng "Cannot grant role '%s' to: %s" hindi "रोल '%s', %s को प्रदान नहीं कर सकते" diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 2b59a82277e..48f2a981443 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -2675,7 +2675,7 @@ static int check_user_can_set_role(THD *thd, const char *user, const char *host, /* get the current user */ acl_user= find_user_wild(host, user, ip); if (acl_user == NULL) - result= ER_INVALID_CURRENT_USER; + result= ER_INVALID_TARGET_USER; else if (access) *access= acl_user->access; @@ -2724,8 +2724,8 @@ end: privileges to know if the INVALID_ROLE exists. */ switch (result) { - case ER_INVALID_CURRENT_USER: - my_error(ER_INVALID_CURRENT_USER, MYF(0), rolename); + case ER_INVALID_TARGET_USER: + my_error(ER_INVALID_TARGET_USER, MYF(0), rolename); break; case ER_INVALID_ROLE: /* Role doesn't exist at all */ -- cgit v1.2.1