summaryrefslogtreecommitdiff
path: root/sql/sql_db.cc
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem.bichot@oracle.com>2011-02-11 15:00:09 +0100
committerGuilhem Bichot <guilhem.bichot@oracle.com>2011-02-11 15:00:09 +0100
commit77c0f33ee2b2ad46088364630275735f9d744ed2 (patch)
treed9d6129bd645413a78561d42f1fdc9c9b94cb638 /sql/sql_db.cc
parente9fc441a525de89be0295ef1766c72a7e39c9b1d (diff)
downloadmariadb-git-77c0f33ee2b2ad46088364630275735f9d744ed2.tar.gz
Fix for BUG#59894
"set optimizer_switch to e or d causes invalid memory writes/valgrind warnings": due to prefix support, the argument "e" was overwritten with its full value "engine_condition_pushdown", which caused a buffer overrun. This was wrong usage of find_type(); other wrong usages are fixed here too. Please start reading with the comment of typelib.c.
Diffstat (limited to 'sql/sql_db.cc')
-rw-r--r--sql/sql_db.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 38f39ec0be7..6c3024d16df 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
+/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1038,9 +1038,9 @@ static bool find_db_tables_and_rm_known_files(THD *thd, MY_DIR *dirp,
}
if (!(extension= strrchr(file->name, '.')))
extension= strend(file->name);
- if (find_type(extension, &deletable_extentions,1+2) <= 0)
+ if (find_type(extension, &deletable_extentions, FIND_TYPE_NO_PREFIX) <= 0)
{
- if (find_type(extension, ha_known_exts(),1+2) <= 0)
+ if (find_type(extension, ha_known_exts(), FIND_TYPE_NO_PREFIX) <= 0)
*found_other_files= true;
continue;
}