input: vcd: properly bail out on missing identifiers
If we hit the missing identifier case, then we reached the end of the token list. So, we should break out of the loop, and not continue. Otherwise we will go past the end of the array as this minimal testcase shows: $timescale 1 ns $end $var wire 1 n0 addr_0 $end $enddefinitions $end 1 gives: $ ./sigrok-cli -I vcd -i no_mod.vcd -O vcd -o /tmp/o.vcd Segmentation fault Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
e85e550d92
commit
73f052d329
|
@ -418,9 +418,10 @@ static void parse_contents(const struct sr_input *in, char *data)
|
|||
* there was whitespace after the bit, the next token.
|
||||
*/
|
||||
if (tokens[i][1] == '\0') {
|
||||
if (!tokens[++i])
|
||||
/* Missing identifier */
|
||||
continue;
|
||||
if (!tokens[++i]) {
|
||||
sr_dbg("Identifier missing!");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
for (j = 1; tokens[i][j]; j++)
|
||||
tokens[i][j - 1] = tokens[i][j];
|
||||
|
|
Loading…
Reference in New Issue