diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2020-01-12 22:15:55 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2020-01-12 22:15:55 +0300 |
commit | d531b4ee3a9bcd89a2fa6b49a2207eaf966f53e3 (patch) | |
tree | fbdc8bb230c6d123f8b2484878acf234caf46810 /sql/sp_cache.cc | |
parent | 9c3eca85141836548214e3c68f256b3868502509 (diff) | |
download | mariadb-git-d531b4ee3a9bcd89a2fa6b49a2207eaf966f53e3.tar.gz |
MDEV-21341: Fix UBSAN failures: Issue Sixbb-10.3-mdev21341-issueSix
(Variant #2 of the patch, which keeps the sp_head object inside the
MEM_ROOT that sp_head object owns)
(10.3 version of the fix, with handling for class sp_package)
sp_head::operator new() and operator delete() were dereferencing sp_head*
pointers to memory that didn't hold a valid sp_head object (it was
not created/already destroyed).
This caused UBSan to crash when looking up type information.
Fixed by providing static sp_head::create() and sp_head::destroy() methods.
Diffstat (limited to 'sql/sp_cache.cc')
-rw-r--r-- | sql/sp_cache.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sp_cache.cc b/sql/sp_cache.cc index 99e68cd2595..e4ffbdcb155 100644 --- a/sql/sp_cache.cc +++ b/sql/sp_cache.cc @@ -283,7 +283,7 @@ uchar *hash_get_key_for_sp_head(const uchar *ptr, size_t *plen, void hash_free_sp_head(void *p) { sp_head *sp= (sp_head *)p; - delete sp; + sp_head::destroy(sp); } |