summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2019-11-25 22:48:50 +0100
committerVladislav Vaintroub <wlad@mariadb.com>2019-11-28 10:48:09 +0100
commitba95c303e379b9f23289aaaffe18fb5d49ddf4a3 (patch)
tree88004462cb796a8660b85383b6389d3f4eea745c /include
parent584ffa02f1bef6931b3feb78559841ffe9c8600f (diff)
downloadmariadb-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.h1
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;