From 5b3e668af8b1bc44cd5379f425bed38809361d5f Mon Sep 17 00:00:00 2001 From: Dmitry Shulga Date: Wed, 10 Nov 2010 11:49:37 +0600 Subject: [PATCH] Fixed Bug#57386 - main.execution_constants segfault on MIPS64EL. --- sql/item_func.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sql/item_func.cc b/sql/item_func.cc index eaf6a1b6d14..d8b5d46938e 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -157,7 +157,14 @@ Item_func::fix_fields(THD *thd, Item **ref) used_tables_cache= not_null_tables_cache= 0; const_item_cache=1; - if (check_stack_overrun(thd, STACK_MIN_SIZE, buff)) + /* + Use stack limit of STACK_MIN_SIZE * 2 since + on some platforms a recursive call to fix_fields + requires more than STACK_MIN_SIZE bytes (e.g. for + MIPS, it takes about 22kB to make one recursive + call to Item_func::fix_fields()) + */ + if (check_stack_overrun(thd, STACK_MIN_SIZE * 2, buff)) return TRUE; // Fatal error if flag is set! if (arg_count) { // Print purify happy