From c932c88ea920917ebe6fd63f42953cfedd1265c9 Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Tue, 19 Sep 2017 14:37:35 +0000 Subject: [PATCH] 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. --- src/fake_outputs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fake_outputs.c b/src/fake_outputs.c index 447409d2..64c3e20c 100644 --- a/src/fake_outputs.c +++ b/src/fake_outputs.c @@ -68,7 +68,9 @@ void fake_outputs_init(const char *output_spec) { num_screens++; } - walk += chars_consumed + 1; + walk += chars_consumed; + if (*walk == ',') + walk++; } if (num_screens == 0) {