← Commit list

61d5997b5

Brian Foley
Brian Foley
2016-10-24
SUCCESS Duration: 218s

Subject

awk: fix segfault on for loop syntax error

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/awk.c+1 -1
@@ -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;
testsuite/awk.tests+3 -0
@@ -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