diff options
author | ramil/ram@mysql.com/ramil.myoffice.izhnet.ru <> | 2007-05-23 12:15:47 +0500 |
---|---|---|
committer | ramil/ram@mysql.com/ramil.myoffice.izhnet.ru <> | 2007-05-23 12:15:47 +0500 |
commit | 794100ce7ee73ec306756ed71d87c3196a8f5f42 (patch) | |
tree | 36982e9f78b65b56a96e11dc0522a855d56984a3 /sql/sql_show.cc | |
parent | 6ddf4785bbbcbb84930d4f461e1d249e1833bece (diff) | |
download | mariadb-git-794100ce7ee73ec306756ed71d87c3196a8f5f42.tar.gz |
Fix for bug #23810: Server crashes on various "show status ..." commands
We access some variable values using casts like *(long *) buff
that may cause crashes on some platforms (e.g. solaris 64) if buff is
not properly aligned.
Fix: align the buffer used.
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r-- | sql/sql_show.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc index e8107248c14..65506860e09 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2035,7 +2035,9 @@ static bool show_status_array(THD *thd, const char *wild, const char *prefix, TABLE *table, bool ucase_names) { - char buff[SHOW_VAR_FUNC_BUFF_SIZE], *prefix_end; + MY_ALIGNED_BYTE_ARRAY(buff_data, SHOW_VAR_FUNC_BUFF_SIZE, long); + char * const buff= (char *) &buff_data; + char *prefix_end; /* the variable name should not be longer than 64 characters */ char name_buffer[64]; int len; |