• Davi Arnaut's avatar
    Bug#45010: invalid memory reads during parsing some strange statements · 69fbbdc1
    Davi Arnaut authored
    The problem is that the lexer could inadvertently skip over the
    end of a query being parsed if it encountered a malformed multibyte
    character. A specially crated query string could cause the lexer
    to jump up to six bytes past the end of the query buffer. Another
    problem was that the laxer could use unfiltered user input as
    a signed array index for the parser maps (having upper and lower
    bounds 0 and 256 respectively).
    
    The solution is to ensure that the lexer only skips over well-formed
    multibyte characters and that the index value of the parser maps
    is always a unsigned value.
    69fbbdc1
mysql_client_test.c 457 KB