mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 07:35:32 +02:00
MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
amazon-web-services
database
fulltext-search
galera
geographical-information-system
innodb
json
mariadb
mysql
rdbms
relational-databases
sql
storage-engine
vector-database
- MariaDB\ 71.8%
- C++ 16.4%
- C 10.4%
- Shell 0.5%
- Perl 0.4%
- Other 0.3%
table and view...
Invalid memory reads after a query referencing MyISAM table
multiple times with write lock. Invalid memory reads may
lead to server crash, valgrind warnings, incorrect values
in INFORMATION_SCHEMA.TABLES.{TABLE_ROWS, DATA_LENGTH,
INDEX_LENGTH, ...}.
This may happen when one of the table instances gets closed
after a query, e.g. out of slots in open tables cache. UNION,
MERGE and VIEW are irrelevant.
The problem was that MyISAM didn't restore state info
pointer to default value.
myisam/mi_locking.c:
When a query is referencing MyISAM table multiple times
with a write lock, all table instances share the same
state info, pointing to MI_INFO::save_state of
"primary" table instance.
When lock is released, state pointer was restored only
for the primary table instance. Secondary table instances
are still pointing to save_state of primary table
instance.
Primary table instance may get closed, leaving secondary
table instances state pointer pointing to freed memory.
That's mostly ok, since next lock will update state info
pointer to correct value. But there're some cases, when
this secondary table instance state info is accessed
without a lock, e.g. INFORMATION_SCHEMA, MERGE (in 5.1
and up), MyISAM itself for DBUG purposes.
Restore default value of state pointer unconditionally,
for both primary and secondary table instances.
mysql-test/r/myisam.result:
A test case for BUG#48438.
mysql-test/t/myisam.test:
A test case for BUG#48438.
|
||
|---|---|---|
| .bzr-mysql | ||
| bdb | ||
| BitKeeper | ||
| BUILD | ||
| client | ||
| cmd-line-utils | ||
| config/ac-macros | ||
| dbug | ||
| Docs | ||
| extra | ||
| heap | ||
| include | ||
| innobase | ||
| libmysql | ||
| libmysql_r | ||
| libmysqld | ||
| man | ||
| myisam | ||
| myisammrg | ||
| mysql-test | ||
| mysys | ||
| ndb | ||
| netware | ||
| os2 | ||
| pstack | ||
| regex | ||
| scripts | ||
| server-tools | ||
| sql | ||
| sql-bench | ||
| sql-common | ||
| SSL | ||
| strings | ||
| support-files | ||
| tests | ||
| tools | ||
| VC++Files | ||
| vio | ||
| win | ||
| zlib | ||
| .bzrignore | ||
| .cvsignore | ||
| CMakeLists.txt | ||
| configure.in | ||
| COPYING | ||
| EXCEPTIONS-CLIENT | ||
| INSTALL-SOURCE | ||
| INSTALL-WIN-SOURCE | ||
| Makefile.am | ||
| README | ||
This is a release of MySQL, a dual-license SQL database server. MySQL is brought to you by the MySQL team at MySQL AB. License information can be found in these files: - For GPL (free) distributions, see the COPYING file and the EXCEPTIONS-CLIENT file. - For commercial distributions, see the LICENSE.mysql file. For further information about MySQL or additional documentation, see: - The latest information about MySQL: http://www.mysql.com - The current MySQL documentation: http://dev.mysql.com/doc Some manual sections of special interest: - If you are migrating from an older version of MySQL, please read the "Upgrading from..." section first! - To see what MySQL can do, take a look at the features section. - For installation instructions, see the Installing and Upgrading chapter. - For the new features/bugfix history, see the Change History appendix. - For the currently known bugs/misfeatures (known errors) see the Problems and Common Errors appendix. - For a list of developers and other contributors, see the Credits appendix. A local copy of the MySQL Reference Manual can be found in the Docs directory in GNU Info format. You can also browse the manual online or download it in any of several formats at the URL given earlier in this file. ************************************************************ IMPORTANT: Bug or error reports should be sent to http://bugs.mysql.com.