• Dmitry Shulga's avatar
    MDEV-23666: Assertion `m_cpp_buf <= ptr && ptr <= m_cpp_buf + m_buf_length'... · f130adbf
    Dmitry Shulga authored
    MDEV-23666: Assertion `m_cpp_buf <= ptr && ptr <= m_cpp_buf + m_buf_length' failed in Lex_input_stream::body_utf8_append
    
    On parsing statements for which a starting backtick (`) delimiter doesn't have
    a corresponding ending backtick, a current pointer to a position inside a
    pre-processed buffer could go beyond the end of the buffer.
    
    This bug report caused by the commit d4967659
      "MDEV-22022 Various mangled SQL statements will crash 10.3 to 10.5 debug builds".
    
    In order to fix the issue both pointers m_ptr and m_cpp_ptr must be
    rolled back to previous position in raw input and pre-processed input streams
    correspondingly in case end of query reached during parsing.
    f130adbf
sql_lex.cc 242 KB