summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2021-09-15 16:06:02 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2021-09-15 16:06:02 +0200
commitd667a01d0f74780907a27d26292f066efa405b68 (patch)
tree77269884f02e5b20aab8765bf3d7a591e7d937e1 /sql/sql_base.cc
parent696de6d06c0eeaf7b20d5f89278ed7d62a9f204f (diff)
downloadmariadb-git-bb-10.2-MDEV-25766.tar.gz
MDEV-25766 Unused CTE lead to a crash in find_field_in_tables/find_order_in_listbb-10.2-MDEV-25766
Do not assume that subquery Item always present.
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 9a66b27a454..0210bf356d4 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -6010,9 +6010,10 @@ find_field_in_tables(THD *thd, Item_ident *item,
sl=sl->outer_select())
{
Item *subs= sl->master_unit()->item;
- if (subs->type() == Item::SUBSELECT_ITEM &&
- ((Item_subselect*)subs)->substype() == Item_subselect::IN_SUBS &&
- ((Item_in_subselect*)subs)->test_strategy(SUBS_SEMI_JOIN))
+ if (!subs ||
+ (subs->type() == Item::SUBSELECT_ITEM &&
+ ((Item_subselect*)subs)->substype() == Item_subselect::IN_SUBS &&
+ ((Item_in_subselect*)subs)->test_strategy(SUBS_SEMI_JOIN)))
{
continue;
}