summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2020-02-05 23:29:09 +0400
committerSergey Vojtovich <svoj@mariadb.org>2020-02-05 23:29:09 +0400
commit66cb90860a09a6405be930d9089c6e80598b37dd (patch)
tree48b184167f256108170933bae65bd1fefc43ecb1
parentfb265acb2c8c0f52c422b166afb83c690f479cb6 (diff)
downloadmariadb-git-bb-10.5-svoj-MDEV-21248.tar.gz
Restore STACK_BUFF_ALLOCbb-10.5-svoj-MDEV-21248
-rw-r--r--sql/item_func.cc4
-rw-r--r--sql/opt_range.cc3
-rw-r--r--sql/sql_base.cc2
-rw-r--r--sql/sql_select.cc2
4 files changed, 6 insertions, 5 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 364151f1df2..62fe0f6c4a7 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -337,7 +337,7 @@ Item_func::fix_fields(THD *thd, Item **ref)
MIPS, it takes about 22kB to make one recursive
call to Item_func::fix_fields())
*/
- if (check_stack_overrun(thd, STACK_MIN_SIZE * 2))
+ if (check_stack_overrun(thd, STACK_MIN_SIZE * 2 + STACK_BUFF_ALLOC))
return TRUE; // Fatal error if flag is set!
if (arg_count)
{ // Print purify happy
@@ -3244,7 +3244,7 @@ udf_handler::fix_fields(THD *thd, Item_func_or_sum *func,
{
DBUG_ENTER("Item_udf_func::fix_fields");
- if (check_stack_overrun(thd, STACK_MIN_SIZE))
+ if (check_stack_overrun(thd, STACK_MIN_SIZE + STACK_BUFF_ALLOC))
DBUG_RETURN(TRUE); // Fatal error flag is set!
udf_func *tmp_udf=find_udf(u_d->name.str,u_d->name.length,1);
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 3fa7276515a..718012a81b6 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -2703,7 +2703,8 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
PARAM param;
bool force_group_by = false;
- if (check_stack_overrun(thd, 2*STACK_MIN_SIZE + sizeof(PARAM)))
+ if (check_stack_overrun(thd, 2*STACK_MIN_SIZE + sizeof(PARAM) +
+ STACK_BUFF_ALLOC))
DBUG_RETURN(0); // Fatal error flag is set
/* set up parameter that is passed to all functions */
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 56d1470b17e..5e8ce5cf0c5 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -8226,7 +8226,7 @@ void wrap_ident(THD *thd, Item **conds)
bool setup_on_expr(THD *thd, TABLE_LIST *table, bool is_update)
{
- if (check_stack_overrun(thd, STACK_MIN_SIZE))
+ if (check_stack_overrun(thd, STACK_MIN_SIZE + STACK_BUFF_ALLOC))
return TRUE; // Fatal error flag is set!
for(; table; table= table->next_local)
{
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 0e191e73b0d..43172a90e04 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -4696,7 +4696,7 @@ static ha_rows get_quick_record_count(THD *thd, SQL_SELECT *select,
{
int error;
DBUG_ENTER("get_quick_record_count");
- if (unlikely(check_stack_overrun(thd, STACK_MIN_SIZE)))
+ if (unlikely(check_stack_overrun(thd, STACK_MIN_SIZE + STACK_BUFF_ALLOC)))
DBUG_RETURN(0); // Fatal error flag is set
if (select)
{