diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-07-15 19:25:24 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-07-15 19:41:01 +0300 |
commit | 38b4c078333205db1381fac66fe9ba7111a3f216 (patch) | |
tree | b4593a88de0a7ab5a1a5f31481b2909518e29485 | |
parent | 9c8420fe8c97e0795af566d0e5ce2bcaac15e823 (diff) | |
download | mariadb-git-38b4c078333205db1381fac66fe9ba7111a3f216.tar.gz |
MDEV-23183 Infinite loop on page_validate() on corrupted page
MDEV-22721 (commit eba2d10ac53d1d2f975027ba2b2ca39d9c9b98ad)
inadvertently introduced an infinite loop.
page_validate(): Remove the infinite loop.
-rw-r--r-- | storage/innobase/page/page0page.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/storage/innobase/page/page0page.cc b/storage/innobase/page/page0page.cc index d28d2f9a082..db33d13db1c 100644 --- a/storage/innobase/page/page0page.cc +++ b/storage/innobase/page/page0page.cc @@ -2,7 +2,7 @@ Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2017, 2019, MariaDB Corporation. +Copyright (c) 2017, 2020, MariaDB Corporation. 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 the Free Software @@ -2442,7 +2442,9 @@ func_exit2: ib::error() << "Apparent corruption in space " << page_get_space_id(page) << " page " << page_get_page_no(page) << " index " << index->name; + return FALSE; } + if (page_is_comp(page)) { if (UNIV_UNLIKELY(!page_simple_validate_new(page))) { goto func_exit2; |