mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-11584: GRANT inside an SP does not work well on 2nd execution
Allocate password hash in statment memory
This commit is contained in:
@@ -8040,3 +8040,12 @@ v_name v_total
|
|||||||
c 1
|
c 1
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-11584: GRANT inside an SP does not work well on 2nd execution
|
||||||
|
#
|
||||||
|
CREATE PROCEDURE sp1()
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO 'foo'@'%' IDENTIFIED BY 'pass';
|
||||||
|
CALL sp1();
|
||||||
|
CALL sp1();
|
||||||
|
drop user 'foo'@'%';
|
||||||
|
drop procedure sp1;
|
||||||
|
@@ -9484,3 +9484,14 @@ CALL p1();
|
|||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-11584: GRANT inside an SP does not work well on 2nd execution
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE PROCEDURE sp1()
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO 'foo'@'%' IDENTIFIED BY 'pass';
|
||||||
|
CALL sp1();
|
||||||
|
CALL sp1();
|
||||||
|
drop user 'foo'@'%';
|
||||||
|
drop procedure sp1;
|
||||||
|
@@ -1064,7 +1064,12 @@ static bool fix_lex_user(THD *thd, LEX_USER *user)
|
|||||||
make_scramble= my_make_scrambled_password;
|
make_scramble= my_make_scrambled_password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Query_arena *arena, backup;
|
||||||
|
arena= thd->activate_stmt_arena_if_needed(&backup);
|
||||||
char *buff= (char *) thd->alloc(scramble_length + 1);
|
char *buff= (char *) thd->alloc(scramble_length + 1);
|
||||||
|
if (arena)
|
||||||
|
thd->restore_active_arena(arena, &backup);
|
||||||
|
|
||||||
if (buff == NULL)
|
if (buff == NULL)
|
||||||
return true;
|
return true;
|
||||||
make_scramble(buff, user->pwtext.str, user->pwtext.length);
|
make_scramble(buff, user->pwtext.str, user->pwtext.length);
|
||||||
|
Reference in New Issue
Block a user