Bug#17700: mysql_fix_privilege_tables cannot handle a password \

	with embedded spaces
  
Problem:  Original code written assuming password contains no spaces.
Further, because of how sh interprets characters in variables, you
cannot do the "simple solution".
  
Solution:  Move the "was a password provided" check to the end. This
allows us to correctly quote the password argument when passed to the
mysql client program.  Addendum:  Put this check inside of a shell fn
to simplify the code.
parent 8f118827
......@@ -120,9 +120,6 @@ then
fi
cmd="$bindir/mysql --no-defaults --force --user=$user --host=$host"
if test ! -z "$password" ; then
cmd="$cmd --password=$password"
fi
if test ! -z "$port"; then
cmd="$cmd --port=$port"
fi
......@@ -178,11 +175,22 @@ then
s_echo ""
fi
run_cmd() {
# Password argument is added here to allow for spaces in password.
if test ! -z "$password"
then
cat $sql_file | $cmd --password="$password"
else
cat $sql_file | $cmd
fi
}
if test $verbose = 0
then
cat $sql_file | $cmd > /dev/null 2>&1
run_cmd > /dev/null 2>&1
else
cat $sql_file | $cmd > /dev/null
run_cmd > /dev/null
fi
if test $? = 0
then
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment