awk: fix segfault on for loop syntax error
No binary (build failed)
—
(log yok)
| @@ -1514,7 +1514,7 @@ static void chain_group(void) | |
| next_token(TC_SEQSTART); | |
| n2 = parse_expr(TC_SEMICOL | TC_SEQTERM); | |
| if (t_tclass & TC_SEQTERM) { /* for-in */ | |
| - | if ((n2->info & OPCLSMASK) != OC_IN) |
| + | if (!n2 || (n2->info & OPCLSMASK) != OC_IN) |
| syntax_error(EMSG_UNEXP_TOKEN); | |
| n = chain_node(OC_WALKINIT | VV); | |
| n->l.n = n2->l.n; | |
| @@ -316,6 +316,9 @@ testing "awk continue" \ | |
| "" \ | |
| 'BEGIN { if (1) continue; else a = 1 }' | |
| + | testing "awk handles invalid for loop" \ |
| + | "awk '{ for() }' 2>&1" "awk: cmd. line:1: Unexpected token\n" "" "" |
| + | |
| # testing "description" "command" "result" "infile" "stdin" | |
| exit $FAILCOUNT | |