1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +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 tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/tnurnberg/27293/50-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
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 11:30:07 +02:00
parent 024dbd231a
commit 3f18c6bc47
3 changed files with 72 additions and 3 deletions

View File

@ -3282,6 +3282,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
#