diff options
author | Monty <monty@mariadb.org> | 2021-02-05 14:57:46 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2021-02-08 12:16:29 +0200 |
commit | 5d6ad2ad66a677b67f2377d7665d6c140dd93323 (patch) | |
tree | 85a54b1a982beb401f04d5bcb621a1166b33b653 /client/mysql.cc | |
parent | e30a3048dacca5180e8d7b2934d0b1fe44b4f383 (diff) | |
download | mariadb-git-5d6ad2ad66a677b67f2377d7665d6c140dd93323.tar.gz |
Added 'const' to arguments in get_one_option and find_typeset()
One should not change the program arguments!
This change also reduces warnings from the icc compiler.
Almost all changes are just syntax changes (adding const to
'get_one_option function' declarations).
Other changes:
- Added a few cast of 'argument' from 'const char*' to 'char *'. This
was mainly in calls to 'external' functions we don't have control of.
- Ensure that all reset of 'password command line argument' are similar.
(In almost all cases it was just adding a comment and a cast)
- In mysqlbinlog.cc and mysqld.cc there was a few cases that changed
the command line argument. These places where changed to instead allocate
the option in a MEM_ROOT to avoid changing the argument. Some of this
code was changed to ensure that different programs did parsing the
same way. Added a test case for the changes in mysqlbinlog.cc
- Changed a few variables that took their value from command line options
from 'char *' to 'const char *'.
Diffstat (limited to 'client/mysql.cc')
-rw-r--r-- | client/mysql.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index dcd9dfecef9..f2938d4c824 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -218,7 +218,7 @@ static void tee_print_sized_data(const char *, unsigned int, unsigned int, bool) /* The names of functions that actually do the manipulation. */ static int get_options(int argc,char **argv); extern "C" my_bool get_one_option(int optid, const struct my_option *opt, - char *argument); + const char *argument); static int com_quit(String *str,char*), com_go(String *str,char*), com_ego(String *str,char*), com_print(String *str,char*), @@ -1715,7 +1715,7 @@ static void usage(int version) my_bool -get_one_option(const struct my_option *opt, char *argument, const char *) +get_one_option(const struct my_option *opt, const char *argument, const char *) { switch(opt->id) { case OPT_CHARSETS_DIR: @@ -1816,7 +1816,8 @@ get_one_option(const struct my_option *opt, char *argument, const char *) status.add_to_history= 0; if (!status.line_buff) ignore_errors= 0; // do it for the first -e only - if (!(status.line_buff= batch_readline_command(status.line_buff, argument))) + if (!(status.line_buff= batch_readline_command(status.line_buff, + (char*) argument))) return 1; break; case 'o': @@ -1830,10 +1831,15 @@ get_one_option(const struct my_option *opt, char *argument, const char *) argument= (char*) ""; // Don't require password if (argument) { - char *start= argument; + /* + One should not really change the argument, but we make an + exception for passwords + */ + char *start= (char*) argument; my_free(opt_password); opt_password= my_strdup(PSI_NOT_INSTRUMENTED, argument, MYF(MY_FAE)); - while (*argument) *argument++= 'x'; // Destroy argument + while (*argument) + *(char*)argument++= 'x'; // Destroy argument if (*start) start[1]=0 ; tty_password= 0; |