1
0
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:
monty@mysql.com
2004-05-06 13:42:26 +03:00
7 changed files with 35 additions and 9 deletions

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -20,4 +20,5 @@ select * from t1;
n n
1 1
1 1
stop slave;
drop table t1; drop table t1;

View File

@ -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;

View File

@ -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;
} }

View File

@ -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 */