1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#27293: mysqldump crashes when dumping procedure defined by different user

mysqldump didn't properly handle getting no data on
SHOW CREATE PROCEDURE.  If S/C/P fails (due to dumping
user's insufficient privileges on mysql.proc, say),
mysqldump will print a comment to that effect to the
output and return an error-code.  If the -f (force) option
is used, the dump will continue, otherwise, it will abort
right there and then.

Also fixes Bug#22761, "mysqldump reports no errors when using
--routines without mysql.proc privileges"
---
Merge mysql.com:/home/tnurnberg/27293/50-27293
into  mysql.com:/home/tnurnberg/27293/51-27293
---
Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  mysql.com:/home/tnurnberg/27293/51-27293


client/mysqldump.c:
  Bug#27293: mysqldump crashes when dumping procedure defined by different user
  
  handle failure of SHOW CREATE PROCEDURE, give user diagnostics,
  heed -f (force) option
  ---
  manual merge
mysql-test/r/mysqldump.result:
  Bug#27293: mysqldump crashes when dumping procedure defined by different user
  
  show that trying to mysqldump --routines with insufficient
  privileges will no longer crash the client
  ---
  manual merge
mysql-test/t/mysqldump.test:
  Bug#27293: mysqldump crashes when dumping procedure defined by different user
  
  show that trying to mysqldump --routines with insufficient
  privileges will no longer crash the client
  ---
  manual merge
This commit is contained in:
unknown
2007-04-30 12:32:57 +02:00
parent 1f476af974
commit 8f8244df44
3 changed files with 69 additions and 4 deletions

View File

@ -3281,6 +3281,33 @@ v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
drop database bug23491_original;
drop database bug23491_restore;
use test;
#
# Bug 27293: mysqldump crashes when dumping routines
# defined by a different user
#
# Bug #22761: mysqldump reports no errors when using
# --routines without mysql.proc privileges
#
create database mysqldump_test_db;
grant all privileges on mysqldump_test_db.* to user1;
grant all privileges on mysqldump_test_db.* to user2;
create procedure mysqldump_test_db.sp1() select 'hello';
DELIMITER ;;
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
-- does user2 have permissions on mysql.proc?
DELIMITER ;
DELIMITER ;;
/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50020 DEFINER=`user1`@`%`*/ /*!50003 PROCEDURE `sp1`()
select 'hello' */;;
/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
DELIMITER ;
drop procedure sp1;
drop user user1;
drop user user2;
drop database mysqldump_test_db;
#
# End of 5.0 tests
#