diff options
author | unknown <monty@mashka.mysql.fi> | 2002-08-06 03:21:12 +0300 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2002-08-06 03:21:12 +0300 |
commit | 4c1712e40171e2861359878ea885e14936298acf (patch) | |
tree | 84cfa628ebdfccaa671b06ac35934e917f3a9d3e | |
parent | 3cf7c3e68bae80f753196e8bb38d8cced9adb324 (diff) | |
download | mariadb-git-4c1712e40171e2861359878ea885e14936298acf.tar.gz |
Changed initialization of RND() to be less predictable.
Use MYSQL_CONFIG_NAME instead of "my" as the configuration file name.
Docs/manual.texi:
Changelog
include/mysql_version.h.in:
Use MYSQL_CONFIG_NAME instead of "my" as the configuration file name.
-rw-r--r-- | Docs/manual.texi | 2 | ||||
-rw-r--r-- | include/mysql_version.h.in | 1 | ||||
-rw-r--r-- | sql/mysqld.cc | 14 |
3 files changed, 14 insertions, 3 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index bc571c4bcb6..a9eef29f11a 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -46928,6 +46928,8 @@ not yet 100% confident in this code. @appendixsubsec Changes in release 3.23.52 @itemize @bullet @item +Changed initialisation of @code{RND()} to make it less predicatable. +@item Fixed problem with @code{GROUP BY} on result with expression that created a @code{BLOB} field. @item diff --git a/include/mysql_version.h.in b/include/mysql_version.h.in index 44fd00f806a..989b1a95494 100644 --- a/include/mysql_version.h.in +++ b/include/mysql_version.h.in @@ -13,6 +13,7 @@ #define MYSQL_VERSION_ID @MYSQL_VERSION_ID@ #define MYSQL_PORT @MYSQL_TCP_PORT@ #define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@" +#define MYSQL_CONFIG_NAME "my" /* mysqld compile time options */ #ifndef MYSQL_CHARSET diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 251dda77d34..d73ec9fc0d6 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1690,7 +1690,7 @@ int main(int argc, char **argv) exit( 1 ); } #endif - load_defaults("my",load_default_groups,&argc,&argv); + load_defaults(MYSQL_CONFIG_NAME,load_default_groups,&argc,&argv); defaults_argv=argv; mysql_tmpdir=getenv("TMPDIR"); /* Use this if possible */ #if defined( __WIN__) || defined(OS2) @@ -2250,7 +2250,15 @@ static void create_new_thread(THD *thd) for (uint i=0; i < 8 ; i++) // Generate password teststring thd->scramble[i]= (char) (rnd(&sql_rand)*94+33); thd->scramble[8]=0; - thd->rand=sql_rand; + /* + We need good random number initialization for new thread + Just coping global one will not work + */ + { + ulong tmp=(ulong) (rnd(&sql_rand) * 3000000); + randominit(&(thd->rand), tmp + (ulong) start_time, + tmp + (ulong) thread_id); + } thd->real_id=pthread_self(); // Keep purify happy /* Start a new thread to handle connection */ @@ -3386,7 +3394,7 @@ Starts the MySQL server\n"); --skip-innodb Don't use Innodb (will save memory)\n\ "); #endif /* HAVE_INNOBASE_DB */ - print_defaults("my",load_default_groups); + print_defaults(MYSQL_CONFIG_NAME,load_default_groups); puts(""); #include "sslopt-usage.h" |