simpleson
simpleson copied to clipboard
json: fix potential overflow
The code:
while(!EMPTY_STRING(input) && stream.push(*index) != json::reader::REJECTED)
{
index++;
}
Runs into an issue because EMPTY_STRING(input) is used to check for null-pointer ending, but input is never incremented during the loop. As such, an overflow will happen when index has incremented beyond it's buffer and *index is run. This triggers an overflow on the input buffer as index is declared as:
const char *index = json::parsing::tlws(input);
Instead of checking for an empty string on input we should check it on index.