summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2019-04-30 12:29:40 +0200
committerSergei Golubchik <serg@mariadb.org>2019-05-01 10:15:29 +0200
commitaba911542641c93553bad0307021983998042d69 (patch)
tree3589a2e0a00ff0f502f802b4b1bba7e328d496e5
parent71a748d575b4d0ae8e80171fb6d261277da9b0ed (diff)
downloadmariadb-git-aba911542641c93553bad0307021983998042d69.tar.gz
MDEV-19349 mysql_install_db: segfault at tmp_file_prefix check
-rw-r--r--mysql-test/t/bootstrap.test9
-rw-r--r--sql/sql_base.cc8
2 files changed, 10 insertions, 7 deletions
diff --git a/mysql-test/t/bootstrap.test b/mysql-test/t/bootstrap.test
index 2930d936830..5494a2d4154 100644
--- a/mysql-test/t/bootstrap.test
+++ b/mysql-test/t/bootstrap.test
@@ -66,4 +66,13 @@ SELECT 'bug' as '' FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
--error 1
--exec $MYSQLD_BOOTSTRAP_CMD --myisam_recover_options=NONE
+#
+# MDEV-19349 mysql_install_db: segfault at tmp_file_prefix check
+#
+--write_file $MYSQLTEST_VARDIR/tmp/1
+use test;
+EOF
+--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/1 >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
+--remove_file $MYSQLTEST_VARDIR/tmp/1
+
--echo End of 5.5 tests
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index c774334e695..c7e356cd09e 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -9301,13 +9301,7 @@ my_bool mysql_rm_tmp_tables(void)
{
file=dirp->dir_entry+idx;
- /* skiping . and .. */
- if (file->name[0] == '.' && (!file->name[1] ||
- (file->name[1] == '.' && !file->name[2])))
- continue;
-
- if (!memcmp(file->name, tmp_file_prefix,
- tmp_file_prefix_length))
+ if (!strncmp(file->name, tmp_file_prefix, tmp_file_prefix_length))
{
char *ext= fn_ext(file->name);
uint ext_len= strlen(ext);