mirror of
https://github.com/MariaDB/server.git
synced 2025-06-16 11:21:15 +03:00
Merge with 4.0 to get security patch for check_grant_colum
This commit is contained in:
@ -358,6 +358,14 @@ os_file_set_size(
|
|||||||
size */
|
size */
|
||||||
ulint size_high);/* in: most significant 32 bits of size */
|
ulint size_high);/* in: most significant 32 bits of size */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
Truncates a file at its current position. */
|
||||||
|
|
||||||
|
ibool
|
||||||
|
os_file_set_eof(
|
||||||
|
/*============*/
|
||||||
|
/* out: TRUE if success */
|
||||||
|
FILE* file); /* in: file to be truncated */
|
||||||
|
/***************************************************************************
|
||||||
Flushes the write buffers of a given file to the disk. */
|
Flushes the write buffers of a given file to the disk. */
|
||||||
|
|
||||||
ibool
|
ibool
|
||||||
|
@ -1582,6 +1582,23 @@ error_handling:
|
|||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
Truncates a file at its current position. */
|
||||||
|
|
||||||
|
ibool
|
||||||
|
os_file_set_eof(
|
||||||
|
/*============*/
|
||||||
|
/* out: TRUE if success */
|
||||||
|
FILE* file) /* in: file to be truncated */
|
||||||
|
{
|
||||||
|
#ifdef __WIN__
|
||||||
|
HANDLE h = (HANDLE) _get_osfhandle(fileno(file));
|
||||||
|
return(SetEndOfFile(h));
|
||||||
|
#else /* __WIN__ */
|
||||||
|
return(!ftruncate(fileno(file), ftell(file)));
|
||||||
|
#endif /* __WIN__ */
|
||||||
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Flushes the write buffers of a given file to the disk. */
|
Flushes the write buffers of a given file to the disk. */
|
||||||
|
|
||||||
|
@ -1655,11 +1655,7 @@ loop:
|
|||||||
mutex_enter(&srv_monitor_file_mutex);
|
mutex_enter(&srv_monitor_file_mutex);
|
||||||
rewind(srv_monitor_file);
|
rewind(srv_monitor_file);
|
||||||
srv_printf_innodb_monitor(srv_monitor_file);
|
srv_printf_innodb_monitor(srv_monitor_file);
|
||||||
#ifdef __WIN__
|
os_file_set_eof(srv_monitor_file);
|
||||||
chsize(fileno(srv_monitor_file), ftell(srv_monitor_file));
|
|
||||||
#else /* __WIN__ */
|
|
||||||
ftruncate(fileno(srv_monitor_file), ftell(srv_monitor_file));
|
|
||||||
#endif /* __WIN__ */
|
|
||||||
mutex_exit(&srv_monitor_file_mutex);
|
mutex_exit(&srv_monitor_file_mutex);
|
||||||
|
|
||||||
if (srv_print_innodb_tablespace_monitor
|
if (srv_print_innodb_tablespace_monitor
|
||||||
|
@ -20,4 +20,5 @@ select * from t1;
|
|||||||
n
|
n
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
stop slave;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -18,4 +18,8 @@ insert into t1 values (1);
|
|||||||
save_master_pos;
|
save_master_pos;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
select * from t1; # check that indeed 2 were inserted
|
select * from t1; # check that indeed 2 were inserted
|
||||||
|
# We stop the slave before cleaning up otherwise we'll get
|
||||||
|
# 'drop table t1' executed twice, so an error in the slave.err
|
||||||
|
# (not critical).
|
||||||
|
stop slave;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -4817,7 +4817,7 @@ innodb_show_status(
|
|||||||
rewind(srv_monitor_file);
|
rewind(srv_monitor_file);
|
||||||
srv_printf_innodb_monitor(srv_monitor_file);
|
srv_printf_innodb_monitor(srv_monitor_file);
|
||||||
flen = ftell(srv_monitor_file);
|
flen = ftell(srv_monitor_file);
|
||||||
my_chsize(fileno(srv_monitor_file), flen, 0, MYF(0));
|
os_file_set_eof(srv_monitor_file);
|
||||||
if(flen > 64000 - 1) {
|
if(flen > 64000 - 1) {
|
||||||
flen = 64000 - 1;
|
flen = 64000 - 1;
|
||||||
}
|
}
|
||||||
|
@ -2764,7 +2764,7 @@ bool check_grant_column(THD *thd,TABLE *table, const char *name,
|
|||||||
if (table->grant.version != grant_version)
|
if (table->grant.version != grant_version)
|
||||||
{
|
{
|
||||||
table->grant.grant_table=
|
table->grant.grant_table=
|
||||||
table_hash_search(thd->host,thd->ip,thd->db,
|
table_hash_search(thd->host, thd->ip, table->table_cache_key,
|
||||||
thd->priv_user,
|
thd->priv_user,
|
||||||
table->real_name, 0); /* purecov: inspected */
|
table->real_name, 0); /* purecov: inspected */
|
||||||
table->grant.version=grant_version; /* purecov: inspected */
|
table->grant.version=grant_version; /* purecov: inspected */
|
||||||
|
Reference in New Issue
Block a user