Commit 78278bc4 authored by unknown's avatar unknown
Browse files

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.


scripts/mysql_fix_privilege_tables.sh:
  Moved password existence check to end to allow for passwords with
  with embedded spaces.
parent 5decebc5
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -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