summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2006-09-01 13:23:43 +0400
committerunknown <sergefp@mysql.com>2006-09-01 13:23:43 +0400
commitdd6dc7adea58d3a325c9a00d92c3ebfe038aa3ae (patch)
tree810129f480963d677f8bdab92d41e2fcd2dd0bd6 /sql/sql_lex.cc
parentf40b6c273cb782bd3fd4563518eb5d57c010f13d (diff)
downloadmariadb-git-dd6dc7adea58d3a325c9a00d92c3ebfe038aa3ae.tar.gz
BUG#21477 "memory overruns for certain kinds of subqueries":
make st_select_lex::setup_ref_array() take into account that Item_sum-descendant objects located within descendant SELECTs may be added into ref_pointer_array. sql/item_sum.cc: BUG#21477 "memory overruns for certain kinds of subqueries": Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects that exist within this SELECT. sql/sql_lex.h: BUG#21477 "memory overruns for certain kinds of subqueries": Add SELECT_LEX::n_sum_items and SELECT_LEXT::n_child_sum_items. sql/sql_yacc.yy: BUG#21477 "memory overruns for certain kinds of subqueries": Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects that exist within this SELECT.
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 563ebce4ff7..035c575724e 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -1521,10 +1521,10 @@ bool st_select_lex::setup_ref_array(THD *thd, uint order_group_num)
*/
Query_arena *arena= thd->stmt_arena;
return (ref_pointer_array=
- (Item **)arena->alloc(sizeof(Item*) *
- (item_list.elements +
- select_n_having_items +
- order_group_num)* 5)) == 0;
+ (Item **)arena->alloc(sizeof(Item*) * (n_child_sum_items +
+ item_list.elements +
+ select_n_having_items +
+ order_group_num)*5)) == 0;
}