1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MBug#423035: error in parsing enum value for plugin variable in mysqld command-line option

Fix parsing of invalid plugin enum option value.

Previous patch to fix plugin enum option parsing on big-endian introduced another bug due
to incorrect comparison of unsigned value. This would cause an incorrect value to be
parsed as value 0.

See also MySQL Bug#41010 and Bug#32034.


mysql-test/mysql-test-run.pl:
  Add a facility for test case to run the mysqld binary (to test that invalid startup options
  are rejected correctly).
mysql-test/r/mysqld_option_err.result:
  Add a test case to check that invalid startup options for mysqld are rejected.
  This is needed to test MBug#423035.
  Also add a few other similar tests, as this was completely untested before this patch.
mysql-test/t/mysqld_option_err.test:
  Add a test case to check that invalid startup options for mysqld are rejected.
  This is needed to test MBug#423035.
  Also add a few other similar tests, as this was completely untested before this patch.
mysys/my_getopt.c:
  Fix parsing of invalid plugin enum option value.
This commit is contained in:
unknown
2009-09-03 15:05:02 +02:00
parent f58512d8b7
commit 03db11cfda
4 changed files with 72 additions and 1 deletions

View File

@ -1771,6 +1771,20 @@ sub tool_arguments ($$) {
return mtr_args2str($exe, @$args);
}
# This is not used to actually start a mysqld server, just to allow test
# scripts to run the mysqld binary to test invalid server startup options.
sub mysqld_client_arguments () {
my $default_mysqld= default_mysqld();
my $exe = find_mysqld($basedir);
my $args;
mtr_init_args(\$args);
mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "--basedir=%s", $basedir);
mtr_add_arg($args, "--character-sets-dir=%s", $default_mysqld->value("character-sets-dir"));
mtr_add_arg($args, "--language=%s", $default_mysqld->value("language"));
return mtr_args2str($exe, @$args);
}
sub have_maria_support () {
my $maria_var= $mysqld_variables{'maria'};
@ -1968,6 +1982,7 @@ sub environment_setup {
$ENV{'MYSQLADMIN'}= native_path($exe_mysqladmin);
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
$ENV{'MYSQL_FIX_SYSTEM_TABLES'}= mysql_fix_arguments();
$ENV{'MYSQLD'}= mysqld_client_arguments();
$ENV{'EXE_MYSQL'}= $exe_mysql;
# ----------------------------------------------------