summaryrefslogtreecommitdiff
path: root/sql/opt_range.cc
diff options
context:
space:
mode:
authorVladislav Vaintroub <vvaintroub@mysql.com>2010-02-23 12:48:26 +0100
committerVladislav Vaintroub <vvaintroub@mysql.com>2010-02-23 12:48:26 +0100
commite451c5023d3b264be1694f1fe85a71756eed4bb5 (patch)
tree0c315bcaeaae5bf2acb6a94e129fe358474a33f5 /sql/opt_range.cc
parenta4af6e87083aec7f27c70ccc6c669e3d3fbcaf0d (diff)
downloadmariadb-git-e451c5023d3b264be1694f1fe85a71756eed4bb5.tar.gz
Bug#43201 : Stack overrun when running sp-error test.
It appears that stack overflow checks for recusrive stored procedure calls, that run in the normal server, did not work in embedded and were dummified with preprocessor magic( #ifndef EMBEDDED_SERVER ). The fix is to remove ifdefs, there is no reason not to run overflow checks and crash in deeply recursive calls. Note: Start of the stack (thd->thread_stack variable) in embedded is not necessarily exact but stil provides the best guess. Unless the caller of mysql_read_connect() is already deep in the stack, thd->thread_stack variable should approximate stack start address well.
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r--sql/opt_range.cc2
1 files changed, 0 insertions, 2 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index b9ea8c7c991..68285563239 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -2266,9 +2266,7 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
keys_to_use.intersect(head->keys_in_use_for_query);
if (!keys_to_use.is_clear_all())
{
-#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
uchar buff[STACK_BUFF_ALLOC];
-#endif
MEM_ROOT alloc;
SEL_TREE *tree= NULL;
KEY_PART *key_parts;