diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2019-11-25 22:48:50 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2019-11-28 10:48:09 +0100 |
commit | ba95c303e379b9f23289aaaffe18fb5d49ddf4a3 (patch) | |
tree | 88004462cb796a8660b85383b6389d3f4eea745c /include | |
parent | 584ffa02f1bef6931b3feb78559841ffe9c8600f (diff) | |
download | mariadb-git-ba95c303e379b9f23289aaaffe18fb5d49ddf4a3.tar.gz |
MDEV-21167 LF_PINS::stack_ends_here inaccurate, leading to alloca() larger than stack
Use my_thread_var::stack_ends_here inside lf_pinbox_real_free() for address
where thread stack ends.
Remove LF_PINS::stack_ends_here.
It is not safe to assume that mysys_var that was used during pin allocation,
remains correct during free. E.g with binlog group commit in Innodb,
that frees pins for multiple Innodb transactions, it does not work
correctly.
Diffstat (limited to 'include')
-rw-r--r-- | include/lf.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/lf.h b/include/lf.h index e4cad7eabb3..10a60c5c949 100644 --- a/include/lf.h +++ b/include/lf.h @@ -65,7 +65,6 @@ typedef struct { typedef struct { void * volatile pin[LF_PINBOX_PINS]; LF_PINBOX *pinbox; - void **stack_ends_here; void *purgatory; uint32 purgatory_count; uint32 volatile link; |