fake_outputs: Don't read past the end of string

fake_outputs_init would unconditionally increase the string read
pointer variable (walk) by one character more than the number of
characters that have been read, to skip past the character delimiting
records (a comma). However, when the input string was not terminated
by a comma, it would cause the function to read past the null
terminator instead.

Avoid this by explicitly checking for the expected delimiter.
This commit is contained in:
Vladimir Panteleev 2017-09-19 14:37:35 +00:00 committed by Michael Stapelberg
parent 4ddf18ef6b
commit c932c88ea9
1 changed files with 3 additions and 1 deletions

View File

@ -68,7 +68,9 @@ void fake_outputs_init(const char *output_spec) {
num_screens++; num_screens++;
} }
walk += chars_consumed + 1; walk += chars_consumed;
if (*walk == ',')
walk++;
} }
if (num_screens == 0) { if (num_screens == 0) {