#At file:///home/alik/MySQL/bzr/00/bug12429877/mysql-5.5-bug12429877.2/ based on revid:alexander.nozdrin@stripped
3505 Alexander Nozdrin 2011-05-11
A patch for Bug#12429877: QUERY_TABLES_LIST::SROUTINES IS NOT
FREED IN FLUSH_READ_LOCK (VALGRIND WARNING).
The problem was that under some circustances the memory allocated
for Query_tables_list::sroutines was not freed properly.
The cause of this problem was the absence of
LEX::restore_backup_query_tables_list() call in one of the branches
in mysql_table_grant() function.
modified:
sql/sql_acl.cc
=== modified file 'sql/sql_acl.cc'
--- a/sql/sql_acl.cc 2011-03-21 14:22:13 +0000
+++ b/sql/sql_acl.cc 2011-05-11 17:24:22 +0000
@@ -3644,6 +3644,7 @@ int mysql_table_grant(THD *thd, TABLE_LI
{ // Should never happen
/* Restore the state of binlog format */
DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row());
+ thd->lex->restore_backup_query_tables_list(&backup);
if (save_binlog_row_based)
thd->set_current_stmt_binlog_format_row();
DBUG_RETURN(TRUE); /* purecov: deadcode */
Attachment: [text/bzr-bundle] bzr/alexander.nozdrin@oracle.com-20110511172422-zmdarb1p3qyw4bmz.bundle