• Dmitry Shulga's avatar
    MDEV-22001: Server crashes in st_select_lex_unit::exclude_level upon execution of SP · f439cfdf
    Dmitry Shulga authored
    Running some statements that use IN subqueries outside context of a regular
    query could result in server abnormal termination.
    
    The reason for failure is that internal structures SELECT_LEX/SELECT_LEX_UNIT
    created on behalf of parsed query were initialized incorrectly. Incorrect
    initialization of the structures SELECT_LEX/SELECT_LEX_UNIT was introduced
    by the commit de745ecf
    (MDEV-11953: support of brackets in UNION/EXCEPT/INTERSECT operations)
    pushed into 10.4, that is the reason this bug report is not reproduced in 10.3.
    
    To fix the issue the method SLECTE_LEX::register_unit is used for proper
    initialization of the data structures SELECT_LEX/SELECT_LEX_UNIT. Additionally,
    the method SELECT_LEX::get_slave() was removed from the source code base
    since for those use cases where it is used it can be replaced by the method
    first_inner_unit().
    f439cfdf
sql_lex.cc 307 KB