Skip to content
Permalink
Browse files
MDEV-23894 UBSAN: several call to function show_binlog_vars(THD*, st_…
…mysql_show_var*, char*) through pointer to incorrect function type 'int (*)(THD *, st_mysql_show_var *, void *, system_status_var *, enum_var_type) errors
  • Loading branch information
kevgs committed Oct 6, 2020
1 parent 33f1987 commit 350c9eb
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 10 deletions.
@@ -10403,7 +10403,8 @@ binlog_checksum_update(MYSQL_THD thd, struct st_mysql_sys_var *var,
}


static int show_binlog_vars(THD *thd, SHOW_VAR *var, char *buff)
static int show_binlog_vars(THD *thd, SHOW_VAR *var, void *,
system_status_var *status_var, enum_var_type)
{
mysql_bin_log.set_status_variables(thd);
var->type= SHOW_ARRAY;
@@ -8337,8 +8337,8 @@ show_ssl_get_server_not_after(THD *thd, SHOW_VAR *var, char *buff,

#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */

static int show_default_keycache(THD *thd, SHOW_VAR *var, char *buff,
enum enum_var_type scope)
static int show_default_keycache(THD *thd, SHOW_VAR *var, void *buff,
system_status_var *, enum_var_type)
{
struct st_data {
KEY_CACHE_STATISTICS stats;
@@ -8371,7 +8371,7 @@ static int show_default_keycache(THD *thd, SHOW_VAR *var, char *buff,

v->name= 0;

DBUG_ASSERT((char*)(v+1) <= buff + SHOW_VAR_FUNC_BUFF_SIZE);
DBUG_ASSERT((char*)(v+1) <= static_cast<char*>(buff) + SHOW_VAR_FUNC_BUFF_SIZE);

#undef set_one_keycache_var

@@ -8395,8 +8395,8 @@ static int show_memory_used(THD *thd, SHOW_VAR *var, char *buff,


#ifndef DBUG_OFF
static int debug_status_func(THD *thd, SHOW_VAR *var, char *buff,
enum enum_var_type scope)
static int debug_status_func(THD *thd, SHOW_VAR *var, void *buff,
system_status_var *, enum_var_type)
{
#define add_var(X,Y,Z) \
v->name= X; \
@@ -131,8 +131,8 @@ extern const char* wsrep_provider_name;
extern const char* wsrep_provider_version;
extern const char* wsrep_provider_vendor;

int wsrep_show_status(THD *thd, SHOW_VAR *var, char *buff,
enum enum_var_type scope);
int wsrep_show_status(THD *thd, SHOW_VAR *var, void *buff,
system_status_var *status_var, enum_var_type scope);
int wsrep_init();
void wsrep_deinit(bool free_options);

@@ -726,8 +726,8 @@ static int show_var_cmp(const void *var1, const void *var2)
return strcasecmp(((SHOW_VAR*)var1)->name, ((SHOW_VAR*)var2)->name);
}

int wsrep_show_status (THD *thd, SHOW_VAR *var, char *buff,
enum enum_var_type scope)
int wsrep_show_status (THD *thd, SHOW_VAR *var, void *buff,
system_status_var *, enum_var_type scope)
{
uint i, maxi= SHOW_VAR_FUNC_BUFF_SIZE / sizeof(*var) - 1;
SHOW_VAR *v= (SHOW_VAR *)buff;

0 comments on commit 350c9eb

Please sign in to comment.