mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-20971 ASAN heap-use-after-free in list_delete / heap_close
Don't save/restore HP_INFO as it could be changed by a concurrent thread. different parts of HP_INFO are protected by different mutexes and the mutex that protect most of the HP_INFO does not protect its open_list data. As a bonus, make heap_check_heap() to take const HP_INFO* and not make any changes there whatsoever.
This commit is contained in:
@@ -245,7 +245,7 @@ int hp_panic(enum ha_panic_function flag);
|
||||
int heap_rkey(HP_INFO *info, uchar *record, int inx, const uchar *key,
|
||||
key_part_map keypart_map, enum ha_rkey_function find_flag);
|
||||
extern uchar * heap_find(HP_INFO *info,int inx,const uchar *key);
|
||||
extern int heap_check_heap(HP_INFO *info, my_bool print_status);
|
||||
extern int heap_check_heap(const HP_INFO *info, my_bool print_status);
|
||||
extern uchar *heap_position(HP_INFO *info);
|
||||
|
||||
/* The following is for programs that uses the old HEAP interface where
|
||||
|
Reference in New Issue
Block a user