tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
reproducible awk(1) segfault
Hello,
on a current system awk(1) dumps core if some invalid printf formats
are used, e.g.
$ awk 'BEGIN { printf("%*"); }'
Segmentation fault (core dumped)
I'm not familiar with the code and only glanced at it, so I'm not sure
if the attache patch is a correct fix for the problem. However, it
seems to fix it...
Cheers, Jukka
--
bashian roulette:
$ ((RANDOM%6)) || rm -rf ~
Index: dist/nawk/run.c
===================================================================
RCS file: /cvsroot/src/dist/nawk/run.c,v
retrieving revision 1.17
diff -u -p -r1.17 run.c
--- dist/nawk/run.c 25 Oct 2007 22:22:41 -0000 1.17
+++ dist/nawk/run.c 21 Jan 2008 14:41:11 -0000
@@ -843,6 +843,8 @@ int format(char **pbuf, int *pbufsize, c
break; /* the ansi panoply */
if (*s == '*') {
x = execute(a);
+ if (a == NULL)
+ FATAL("not enough args in printf(%s)",
os);
a = a->nnext;
sprintf(t-1, "%d", fmtwd=(int) getfval(x));
if (fmtwd < 0)
Home |
Main Index |
Thread Index |
Old Index