Fix memory issue in AntlrInput::parseError (#4873)
authorGereon Kremer <nafur42@gmail.com>
Mon, 24 Aug 2020 20:43:48 +0000 (22:43 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Aug 2020 20:43:48 +0000 (13:43 -0700)
commit5852810e110a002ad9a3b04b929470a4b61abe98
tree77fa4ec31b64a1949d274509d17662a782099161
parentdf2150c721b811a588e5f731b6bc11b236ee3a7e
Fix memory issue in AntlrInput::parseError (#4873)

The `parseErrorHelper` message can run into memory errors when the it prints the last line and this last line is not terminated by a newline. I suspect other conditions may trigger it as well (like only using `\r` as line terminator).
This comit computes the size of the buffer from the start of the current line to the end of the buffer and makes sure that we never go beyond this buffer. The calculation looks a bit awkward, I've not been able to obtain this information from the ANTLR input stream in a nicer way...
(I found this issue when looking at #4866).
Fixes #4069 .
src/parser/antlr_input.cpp