From 8fc3724421529b982df81bc56ee89a763295b8d8 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 23 Jul 2014 21:44:35 +0200 Subject: [PATCH] MDEV-5958 Inconsitent handling of invalid arguments for mysqld_safe issue an error for unrecognized options in the [mysqld_safe] section of my.cnf but don't abort the script --- scripts/mysqld_safe.sh | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index a8e1cac2793..e5e0b768440 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -190,16 +190,6 @@ shell_quote_string() { } parse_arguments() { - # We only need to pass arguments through to the server if we don't - # handle them here. So, we collect unrecognized options (passed on - # the command line) into the args variable. - pick_args= - if test "$1" = PICK-ARGS-FROM-ARGV - then - pick_args=1 - shift - fi - for arg do # the parameter after "=", or the whole $arg if no match val=`echo "$arg" | sed -e 's;^--[^=]*=;;'` @@ -256,11 +246,10 @@ parse_arguments() { --help) usage ;; *) - if test -n "$pick_args" - then - append_arg_to_args "$arg" - fi - ;; + case "$unrecognized_handling" in + collect) append_arg_to_args "$arg" ;; + complain) log_error "unknown option '$arg'" ;; + esac esac done } @@ -517,8 +506,16 @@ then SET_USER=0 fi +# If arguments come from [mysqld_safe] section of my.cnf +# we complain about unrecognized options +unrecognized_handling=complain parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysqld mariadb_safe` -parse_arguments PICK-ARGS-FROM-ARGV "$@" + +# We only need to pass arguments through to the server if we don't +# handle them here. So, we collect unrecognized options (passed on +# the command line) into the args variable. +unrecognized_handling=collect +parse_arguments "$@" #