"awk" drops core on many syntax errors
Guy Harris
guy%gorodish at Sun.COM
Sat Jan 10 15:12:24 AEST 1987
Index: cmd/awk/awk.g.y
Description:
In a number of cases, "awk" will drop core when it encounters
a syntax error. If "awk"s standard error is redirected to a
file, it may not even print the error messages.
Repeat-By:
Run the following command:
awk '{ ng[] = ; goop = 1; }' </dev/null
and watch it drop core.
Fix:
*** /tmp/da7722 Fri Jan 9 21:09:43 1987
--- awk.g.y Fri Jan 9 21:00:22 1987
***************
*** 238,244 ****
{ $$ = stat3($1, $2, 0, 0); }
| expr { $$ = exptostat($1); }
| { $$ = (int)0; }
! | error { yyclearin; yyerror("illegal statement"); }
;
statement:
--- 238,244 ----
{ $$ = stat3($1, $2, 0, 0); }
| expr { $$ = exptostat($1); }
| { $$ = (int)0; }
! | error { yyclearin; yyerror("illegal statement"); $$ = (int)0; }
;
statement:
For those of you with S5R1 and its older version of "awk", the change is the
same; only some of the surrounding code differs.
*** /arch/4.3/usr/src/bin/awk/awk.g.y Sun Feb 27 14:24:47 1983
--- ./awk.g.y Fri Jan 9 21:01:29 1987
***************
*** 235,241 ****
{ PUTS("printf list"); $$ = stat3($1, $2, nullstat, nullstat); }
| expr { PUTS("expr"); $$ = exptostat($1); }
| { PUTS("null simple statement"); $$ = (hack)nullstat; }
! | error { yyclearin; yyerror("illegal statement"); }
;
statement:
--- 235,241 ----
{ PUTS("printf list"); $$ = stat3($1, $2, nullstat, nullstat); }
| expr { PUTS("expr"); $$ = exptostat($1); }
| { PUTS("null simple statement"); $$ = (hack)nullstat; }
! | error { yyclearin; yyerror("illegal statement"); $$ = (hack)nullstat; }
;
statement:
More information about the Comp.bugs.sys5
mailing list