summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-10-10 09:12:55 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-10-10 09:12:55 +0300
commit56b97ca03ac19b5bf2d95494d861f49324008676 (patch)
tree0f55fb0742d3c707d7553977458eef7b2e214853 /storage/innobase
parent602124bb3bdff83f208406c866774c7a9bf14ea8 (diff)
downloadmariadb-git-56b97ca03ac19b5bf2d95494d861f49324008676.tar.gz
MDEV-29742 heap number overflow
A previous fix in commit efd8af535a4fa4aa3dd89a325340b6eb648e1bc8 failed to cover ALTER TABLE. PageBulk::isSpaceAvailable(): Check for record heap number overflow.
Diffstat (limited to 'storage/innobase')
-rw-r--r--storage/innobase/btr/btr0bulk.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/storage/innobase/btr/btr0bulk.cc b/storage/innobase/btr/btr0bulk.cc
index fdeba1e375b..0b53438feb7 100644
--- a/storage/innobase/btr/btr0bulk.cc
+++ b/storage/innobase/btr/btr0bulk.cc
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2014, 2019, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2017, 2021, MariaDB Corporation.
+Copyright (c) 2017, 2022, 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
@@ -597,6 +597,11 @@ bool
PageBulk::isSpaceAvailable(
ulint rec_size)
{
+ if (m_rec_no >= 8190) {
+ ut_ad(srv_page_size == 65536);
+ return false;
+ }
+
ulint slot_size;
ulint required_space;