• Davi Arnaut's avatar
    Bug#50755: Crash if stored routine def contains version comments · 7ecad98c
    Davi Arnaut authored
    The problem was that a syntactically invalid trigger could cause
    the server to crash when trying to list triggers. The crash would
    happen due to a mishap in the backup/restore procedure that should
    protect parser items which are not associated with the trigger. The
    backup/restore is used to isolate the parse tree (and context) of
    a statement from the load (and parsing) of a trigger. In this case,
    a error during the parsing of a trigger could cause the improper
    backup/restore sequence.
    
    The solution is to properly restore the original statement context
    before the parser is exited due to syntax errors in the trigger body.
    
    mysql-test/r/trigger.result:
      Add test case result for Bug#50755
    mysql-test/t/trigger.test:
      Add test case for Bug#50755
    sql/sp_head.cc:
      Merge sp_head::destroy() and sp_head destructor. Retrieve THD
      from the LEX so that m_thd is not necessary.
    sql/sql_lex.cc:
      Explicitly restore the original environment.
    7ecad98c
sp_head.cc 104 KB