diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-10-10 09:12:55 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-10-10 09:12:55 +0300 |
commit | 56b97ca03ac19b5bf2d95494d861f49324008676 (patch) | |
tree | 0f55fb0742d3c707d7553977458eef7b2e214853 /storage/innobase | |
parent | 602124bb3bdff83f208406c866774c7a9bf14ea8 (diff) | |
download | mariadb-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.cc | 7 |
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; |