diff options
author | Varun Gupta <varunraiko1803@gmail.com> | 2018-07-11 02:28:42 +0530 |
---|---|---|
committer | Varun Gupta <varunraiko1803@gmail.com> | 2018-07-11 15:22:04 +0530 |
commit | ad9d1e8c3f5a8e1b3e222921e825247aa47c4d23 (patch) | |
tree | 78db9992ab1cfd953aa320a777ee05ea2bd9d0f2 /sql/sql_statistics.cc | |
parent | a2c0376e08d80d7b7dad8713d1df334b2b81eff9 (diff) | |
download | mariadb-git-ad9d1e8c3f5a8e1b3e222921e825247aa47c4d23.tar.gz |
MDEV-16552: [10.0] ASAN global-buffer-overflow in is_stat_table / statistics_for_tables_is_needed
Backport the fix f214d365121 to 10.0
Author: Sergei Golubchik <serg@mariadb.org>
Date: Tue Apr 17 00:44:34 2018 +0200
ASAN error in is_stat_table()
don't memcmp beyond the first argument's end
Also: use my_strcasecmp(table_alias_charset), like elsewhere, not memcmp
Diffstat (limited to 'sql/sql_statistics.cc')
-rw-r--r-- | sql/sql_statistics.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 1febc02b903..be4547a69df 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -3858,11 +3858,11 @@ bool is_stat_table(const char *db, const char *table) { DBUG_ASSERT(db && table); - if (!memcmp(db, stat_tables_db_name.str, stat_tables_db_name.length)) + if (!my_strcasecmp(table_alias_charset, db, stat_tables_db_name.str)) { for (uint i= 0; i < STATISTICS_TABLES; i ++) { - if (!memcmp(table, stat_table_name[i].str, stat_table_name[i].length)) + if (!my_strcasecmp(table_alias_charset, table, stat_table_name[i].str)) return true; } } |