mariadb/sql
Dmitry Lenev e960abc7cf Fix for bug#36544 "DROP USER does not remove stored function
privileges".

The first problem was that DROP USER didn't properly remove privileges 
on stored functions from in-memory structures. So the dropped user
could have called stored functions on which he had privileges before
being dropped while his connection was still around.
Even worse if a new user with the same name was created he would
inherit privileges on stored functions from the dropped user.
Similar thing happened with old user name and function privileges
during RENAME USER.

This problem stemmed from the fact that the handle_grant_data() function
which handled DROP/RENAME USER didn't take any measures to update
in-memory hash with information about function privileges after
updating them on disk.

This patch solves this problem by adding code doing just that.

The second problem was that RENAME USER didn't properly update in-memory
structures describing table-level privileges and privileges on stored 
procedures. As result such privileges could have been lost after a rename
(i.e. not associated with the new name of user) and inherited by a new
user with the same name as the old name of the original user.

This problem was caused by code handling RENAME USER in
handle_grant_struct() which [sic!]:
a) tried to update wrong (tables) hash when updating stored procedure
   privileges for new user name.
b) passed wrong arguments to function performing the hash update and
   didn't take into account the way in which such update could have
   changed the order of the hash elements.

This patch solves this problem by ensuring that a) the correct hash
is updated, b) correct arguments are used for the hash_update()
function and c) we take into account possible changes in the order
of hash elements.
2011-02-07 14:01:19 +03:00
..
examples Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
share - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
.cvsignore
add_errmsg
client_settings.h Bug#46013: rpl_extraColmaster_myisam fails on pb2 2009-08-13 17:07:20 -03:00
CMakeLists.txt Merged from 5.0 (enterprise). 2008-12-17 15:01:34 -05:00
custom_conf.h
derror.cc
des_key_file.cc
discover.cc
field.cc automerge 2011-01-07 15:28:36 +02:00
field.h Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-09 18:11:21 +02:00
field_conv.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
filesort.cc Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL 2010-01-29 13:17:57 +04:00
frm_crypt.cc
gen_lex_hash.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
gstream.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-09 18:11:21 +02:00
gstream.h
ha_archive.cc Merge 5.0.80 release and 5.0 community. Version left at 5.0.80. 2009-04-14 13:20:13 -04:00
ha_archive.h
ha_berkeley.cc Merge from 5.0 trunk. 2008-07-14 16:16:37 -04:00
ha_berkeley.h
ha_blackhole.cc Bug #35178 INSERT_ID not written to binary log for inserts against BLACKHOLE backed tables 2008-03-19 18:44:50 +02:00
ha_blackhole.h Bug#30294 blackhole engine causes 100% with 2 alter table statements running 2007-11-16 14:46:36 +04:00
ha_federated.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
ha_federated.h Bug #32374 crash with filesort when selecting from federated table and view. 2007-11-30 17:08:00 +04:00
ha_heap.cc type conversions fixed to get rid of warnings 2007-10-23 16:32:05 +05:00
ha_heap.h [pb problem]: ha_heap->clone() fails on windows because of mess with 2007-07-17 19:51:50 +04:00
ha_innodb.cc Bug #38883 (reopened): thd_security_context is not thread safe, crashes? 2009-12-01 14:24:44 +04:00
ha_innodb.h Fix for BUG#43660- SHOW INDEXES/ANALYZE does NOT update cardinality 2009-04-24 16:33:50 +05:30
ha_myisam.cc Bug#17332 - changing key_buffer_size on a running server 2009-09-07 18:35:37 +02:00
ha_myisam.h Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock 2007-07-12 13:29:51 +02:00
ha_myisammrg.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
ha_myisammrg.h BUG#26976 - Missing table in merge not noted in related error msg + 2007-06-06 04:42:41 +05:00
ha_ndbcluster.cc Merge chunk from trunk. 2008-07-10 14:47:53 -04:00
ha_ndbcluster.h ha_ndbcluster.h: 2007-11-05 20:18:22 +01:00
ha_ndbcluster_cond.cc fixed warnings and compile errors from the fix for bug 26243 2008-03-29 09:52:16 +02:00
ha_ndbcluster_cond.h Bug#34749: Server crash when using NAME_CONST() with an aggregate function 2008-02-28 14:23:22 +01:00
handler.cc Fix for BUG#18828 - If InnoDB runs out of undo slots, 2009-07-17 14:13:53 +05:30
handler.h Fix for bug#40984: backport fix from 39585 into 5.0 2008-11-25 10:22:02 +04:00
hash_filo.cc
hash_filo.h
hostname.cc
init.cc Bug#26294: library name conflict between MySQL 4.x, 5.0 and Qt 3.3 2008-04-03 11:32:00 -04:00
item.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
item.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
item_buff.cc
item_cmpfunc.cc automerge 2011-01-07 15:28:36 +02:00
item_cmpfunc.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
item_create.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
item_create.h Bug #27921 View ignores precision for CAST() 2007-05-10 00:17:21 +05:00
item_func.cc automerge 2011-01-07 15:28:36 +02:00
item_func.h automerge 2011-01-07 15:28:36 +02:00
item_geofunc.cc Bug #47780: crash when comparing GIS items from subquery 2009-10-21 11:43:45 +03:00
item_geofunc.h Bug #31155 gis types in union'd select cause crash. 2007-10-04 12:01:28 +05:00
item_row.cc
item_row.h
item_strfunc.cc Bug#46815 CONCAT_WS returning wrong data 2009-09-10 15:24:07 +05:00
item_strfunc.h Bug #44767: invalid memory reads in password() and 2009-05-27 14:20:57 +04:00
item_subselect.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
item_subselect.h Bug #31884: Assertion + crash in subquery in the SELECT clause. 2007-10-30 14:27:21 +02:00
item_sum.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
item_sum.h backported the fix for bug #34773 to 5.0 2008-12-09 20:35:02 +02:00
item_timefunc.cc Bug #48739 MySQL crashes on specific INTERVAL in select query 2010-02-25 09:49:09 -06:00
item_timefunc.h Bug#42525: TIMEDIFF function 2009-02-06 18:25:08 +01:00
item_uniq.cc
item_uniq.h
key.cc Fixed bug #32556: assert in "using index for group-by" : 2007-11-21 22:56:42 +04:00
lex.h Merge mysqldev@production.mysql.com:my/mysql-5.0-release 2007-04-26 11:51:37 -04:00
lex_symbol.h
lock.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
log.cc BUG#48738: merge local branch into mysql-5.0-bugteam latest. 2009-12-24 02:26:29 +00:00
log_event.cc Bug #49137 Replication failure on SBR/MBR + multi-table DROP TEMPORARY TABLE 2010-01-06 13:12:40 +08:00
log_event.h BUG#37145 Killing a statement doing DDL may log binlog event with error code 1053 2009-03-27 13:19:50 +08:00
Makefile.am Bug#17270 - mysql client tool could not find ../share/charsets folder and fails. 2009-07-31 15:22:02 -04:00
matherr.c
message.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
message.mc Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
message.rc Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
mf_iocache.cc
MSG00001.bin Bug#40280: Message compiler(mc.exe) needed to compile MySQL on windows. 2008-10-23 15:28:53 +02:00
my_decimal.cc Bug#37553: MySql Error Compare TimeDiff & Time 2008-11-26 09:28:17 +01:00
my_decimal.h Bug#36023: Incorrect handling of zero length caused an assertion to fail. 2008-04-25 00:39:37 +04:00
my_lock.c
mysql_priv.h Postfix bug#49124 2011-01-26 15:30:06 +08:00
mysqld.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
mysqld_suffix.h
net_serv.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
nt_servc.cc Bug #20430 mysqld.exe windows service stuck in "SERVICE_STOP_PENDING" 2008-11-14 02:01:41 +01:00
nt_servc.h Bug #20430 mysqld.exe windows service stuck in "SERVICE_STOP_PENDING" 2008-11-14 02:01:41 +01:00
opt_range.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
opt_range.h BUG#36639: subselect.test crashes on 64 bit pentium4 when compiled for valgrind, commit into 5.0 2008-08-25 21:02:54 +04:00
opt_sum.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-09 18:11:21 +02:00
parse_file.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
parse_file.h Backport of a 5.0.74 fix into 5.0.72sp1: 2009-01-12 17:09:03 +01:00
password.c Bug #44767: invalid memory reads in password() and 2009-05-27 14:20:57 +04:00
procedure.cc
procedure.h Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes) 2008-03-21 17:23:17 +02:00
protocol.cc auto-merge 2009-03-19 09:44:58 -04:00
protocol.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
records.cc A fix and a test case for 2009-11-03 19:58:54 +03:00
repl_failsafe.cc Merge chunk from trunk. 2008-07-10 14:50:07 -04:00
repl_failsafe.h
set_var.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
set_var.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
slave.cc Bug #47210 first execution of "start slave until" stops too early 2009-11-12 17:10:19 +02:00
slave.h Bug #47210 first execution of "start slave until" stops too early 2009-11-12 17:10:19 +02:00
sp.cc Bug #45287: phase 2 : 5.0 64 bit compilation warnings 2009-07-16 15:37:38 +03:00
sp.h
sp_cache.cc
sp_cache.h
sp_head.cc Bug #38816: kill + flush tables with read lock + stored 2009-07-24 20:58:58 +05:00
sp_head.h Bug#25058 ignored return codes in memory allocation functions 2008-11-21 17:38:42 +04:00
sp_pcontext.cc Bug#25058 ignored return codes in memory allocation functions 2008-11-21 17:38:42 +04:00
sp_pcontext.h Bug#48983: Bad strmake calls (length one too long) 2009-12-17 15:58:38 -02:00
sp_rcontext.cc Bug#33618 (Crash in sp_rcontext) 2008-01-23 13:26:41 -07:00
sp_rcontext.h Bug#33618 (Crash in sp_rcontext) 2008-01-23 13:26:41 -07:00
spatial.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
spatial.h Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
sql_acl.cc Fix for bug#36544 "DROP USER does not remove stored function 2011-02-07 14:01:19 +03:00
sql_acl.h Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes) 2008-03-21 17:23:17 +02:00
sql_analyse.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
sql_analyse.h Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes) 2008-03-21 17:23:17 +02:00
sql_array.h Fix for bug #31207: Test "join_nested" shows different strategy on IA64 2007-10-17 20:08:58 +04:00
sql_base.cc automerge 2011-01-07 15:28:36 +02:00
sql_bitmap.h
sql_cache.cc Merge 5.0.80 release and 5.0 community. Version left at 5.0.80. 2009-04-14 13:20:13 -04:00
sql_cache.h Bug#30087 Set query_cache_size, if the value is too small, get a unclear warning 2008-07-16 16:29:22 -06:00
sql_class.cc Bug #48291 : crash with row() operator,select into @var, and 2009-10-30 15:15:43 +02:00
sql_class.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
sql_client.cc Bug#26664 test suite times out on OS X 64bit 2007-05-24 11:21:27 +02:00
sql_crypt.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
sql_crypt.h
sql_cursor.cc Bug#37956 memory leak and / or crash with geometry and prepared statements! 2008-12-10 18:13:11 +04:00
sql_cursor.h
sql_db.cc BUG#45520 rpl_killed_ddl fails sporadically in pb2 2009-12-09 14:13:56 +08:00
sql_delete.cc Bug #40113: Embedded SELECT inside UPDATE or DELETE can timeout 2009-07-13 18:11:16 +03:00
sql_derived.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
sql_do.cc
sql_error.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
sql_error.h BUG#26976 - Missing table in merge not noted in related error msg + 2007-06-06 04:42:41 +05:00
sql_handler.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-09-17 17:10:30 +02:00
sql_help.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
sql_insert.cc Fix for bug#49465: valgrind warnings and incorrect live checksum... 2009-12-17 09:55:03 +04:00
sql_lex.cc Postfix bug#49124 2011-01-26 15:30:06 +08:00
sql_lex.h Postfix bug#49124 2011-01-26 15:30:06 +08:00
sql_list.cc
sql_list.h Bug#38296 (low memory crash with many conditions in a query) 2008-08-11 10:10:00 -06:00
sql_load.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
sql_locale.cc Bug#37575 UCASE fails on monthname 2008-12-23 18:08:04 +04:00
sql_manager.cc
sql_manager.h
sql_map.cc type conversions fixed to avoid warnings on Windows 2007-10-23 14:27:11 +05:00
sql_map.h
sql_olap.cc
sql_parse.cc Postfix bug#49124 2011-01-26 15:30:06 +08:00
sql_prepare.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
sql_profile.cc Bug #45287: phase 2 : 5.0 64 bit compilation warnings 2009-07-16 15:37:38 +03:00
sql_profile.h Pull 5.1 treatment of community features into 5.0. 2009-05-05 17:03:23 -04:00
sql_rename.cc BUG#37145 Killing a statement doing DDL may log binlog event with error code 1053 2009-03-27 13:19:50 +08:00
sql_repl.cc Bug #38816: kill + flush tables with read lock + stored 2009-07-24 20:58:58 +05:00
sql_repl.h BUG#31024: STOP SLAVE does not stop attempted connect()s 2008-03-11 14:42:54 +01:00
sql_select.cc automerge 2011-01-07 15:28:36 +02:00
sql_select.h automerge 2011-01-07 15:28:36 +02:00
sql_show.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
sql_sort.h Fixed bug #25798. 2007-07-01 15:33:28 -07:00
sql_state.c
sql_string.cc auto-merge 2009-03-19 09:44:58 -04:00
sql_string.h Bug#38296 (low memory crash with many conditions in a query) 2008-08-11 10:10:00 -06:00
sql_table.cc Bug#48983: Bad strmake calls (length one too long) 2009-12-17 15:58:38 -02:00
sql_test.cc
sql_trigger.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
sql_trigger.h A fix and a test case for Bug#26141 mixing table types in trigger 2007-07-12 22:26:41 +04:00
sql_udf.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
sql_udf.h Remove typedef st_table_list TABLE_LIST and always use name 'TABLE_LIST'. 2007-07-06 16:18:49 +04:00
sql_union.cc Bug#43612 crash with explain extended, union, order by 2009-05-15 12:03:34 +05:00
sql_update.cc - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
sql_view.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-08-28 17:51:31 +02:00
sql_view.h Bug#32890 Crash after repeated create and drop of tables and views 2008-02-21 14:58:29 -03:00
sql_yacc.yy Bug #49250 : spatial btree index corruption and crash 2009-12-10 11:28:38 +02:00
stacktrace.c Bug#50409 Solaris 8 compatibility broken by assumption about 2010-01-27 11:38:50 +01:00
stacktrace.h Bug#50409 Solaris 8 compatibility broken by assumption about 2010-01-27 11:38:50 +01:00
strfunc.cc
structs.h A fix and a test case for 2009-11-03 19:58:54 +03:00
table.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
table.h - Added/updated copyright headers 2010-12-28 19:57:23 +01:00
thr_malloc.cc Merge from 5.0-bt 2009-06-29 15:17:01 +02:00
time.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
tzfile.h
tztime.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
tztime.h Backport of a 5.0.74 fix into 5.0.72sp1: 2009-01-12 17:40:29 +01:00
udf_example.c Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-09-17 17:10:30 +02:00
udf_example.def Bug #29804 UDF parameters don't contain correct string length 2007-10-17 17:54:11 -04:00
uniques.cc Bug #43414 Parenthesis (and other) warnings compiling MySQL 2009-06-17 15:54:01 +02:00
unireg.cc Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
unireg.h Bug#17270 - mysql client tool could not find ../share/charsets folder and fails. 2009-07-31 15:22:02 -04:00
watchdog_mysqld