diff options
author | Kristofer Pettersson <kristofer.pettersson@sun.com> | 2009-11-09 23:28:31 +0100 |
---|---|---|
committer | Kristofer Pettersson <kristofer.pettersson@sun.com> | 2009-11-09 23:28:31 +0100 |
commit | ac3a08c3d2517c6af9827554cb98a245ce52bd8c (patch) | |
tree | 53e370dc429e4a62565e55cc6dcbaa6832a69881 /mysys/my_getopt.c | |
parent | cafe3c7fcaf32a5141b8bf4fbe4299eedabfb2b0 (diff) | |
download | mariadb-git-ac3a08c3d2517c6af9827554cb98a245ce52bd8c.tar.gz |
Bug#46043 mysqld --skip-innodb does not skip InnoDB
The prefix --skip- didn't work on 64 bit big endian machines
because of how the value pointer was casted.
mysys/my_getopt.c:
* Use the interface! The value pointer must correspond to the type mask or it will break on big endian platforms.
Diffstat (limited to 'mysys/my_getopt.c')
-rw-r--r-- | mysys/my_getopt.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 5e81dbf2ee2..e561d74f4d1 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -413,17 +413,17 @@ invalid value '%s'", else if (optp->arg_type == OPT_ARG && (((optp->var_type & GET_TYPE_MASK) == GET_BOOL) || (optp->var_type & GET_TYPE_MASK) == GET_ENUM)) - { - if (optend == disabled_my_option) - *((my_bool*) value)= (my_bool) 0; - else - { - if (!optend) /* No argument -> enable option */ - *((my_bool*) value)= (my_bool) 1; - else - argument= optend; - } - } + { + if (optend == disabled_my_option) + init_one_value(optp, value, 0); + else + { + if (!optend) /* No argument -> enable option */ + init_one_value(optp, value, 1); + else + argument= optend; + } + } else if (optp->arg_type == REQUIRED_ARG && !optend) { /* Check if there are more arguments after this one */ |