It does not handle the case for the unsupported opcode (-1) which would cause a segfault when accessing the "seen" array. diff --git a/src/config.c b/src/config.c index c5313ec8..72e07639 100644 --- a/src/config.c +++ b/src/config.c @@ -218,7 +218,8 @@ static int ssh_config_parse_line(ssh_session session, const char *line, } opcode = ssh_config_get_opcode(keyword); - if (*parsing == 1 && opcode != SOC_HOST) { + if (*parsing == 1 && opcode != SOC_HOST && + opcode > SOC_UNSUPPORTED && opcode < SOC_END) { if (seen[opcode] != 0) { return 0; }