Fix for bug#37669: Server crash by setting "@@session.innodb_table_locks"
Problem: reading/writing data from/to an address without proper alignment leads to SIGBUS on some platforms. Fix: use the correct data type when dereferencing variable values.
This commit is contained in:
parent
449d359fa0
commit
db56fd008c
@ -1882,7 +1882,7 @@ static int check_func_bool(THD *thd, struct st_mysql_sys_var *var,
|
|||||||
}
|
}
|
||||||
result= (int) tmp;
|
result= (int) tmp;
|
||||||
}
|
}
|
||||||
*(int*)save= -result;
|
*(my_bool *) save= -result;
|
||||||
return 0;
|
return 0;
|
||||||
err:
|
err:
|
||||||
my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->name, strvalue);
|
my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->name, strvalue);
|
||||||
@ -2063,7 +2063,7 @@ err:
|
|||||||
static void update_func_bool(THD *thd, struct st_mysql_sys_var *var,
|
static void update_func_bool(THD *thd, struct st_mysql_sys_var *var,
|
||||||
void *tgt, const void *save)
|
void *tgt, const void *save)
|
||||||
{
|
{
|
||||||
*(my_bool *) tgt= *(int *) save ? 1 : 0;
|
*(my_bool *) tgt= *(my_bool *) save ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user