Andrew.Vignaux@comp.vuw.ac.nz (Andrew Vignaux) (05/29/90)
I've found a problem with some of the fileops and an empty set of
arguments. I realise that this is generally discouraged, but I found
it while I was playing around with some "command-line"rs, and it, er,
shouldn't dump core.
Machines: HP 9000/300 running MORE/bsd, HP 9000/800 HPUX 7.0, Sun 3 -- 4.0.3
Example:
$ perl -v
$Header: perly.c,v 3.0.1.5 90/03/27 16:20:57 lwall Locked $
Patch level: 18
$ perl -e 'close();'
Segmentation fault (core dumped)
do_close (stab=(STAB *) 0x0, explicit=1 '\001') (doio.c line 369)
369 if (stio->ifp) {
or:
$ perl -e '<>; getc();'
hello
x
Segmentation fault (core dumped)
0x17978 in eval (arg=(ARG *) 0x4ca88, gimme=0, sp=-1) (eval.c line 930)
930 *str->str_ptr = getc(stab_io(stab)->ifp); /* should never be EOF */
There are probably others :-(
perl -D1024 for the "close" looks like
{
C_TYPE = EXPR
C_ADDR = 0x4af88
C_NEXT = 0x0
C_LINE = 1 (0x4af88)
C_OPT = CFT_EVAL
C_FLAGS = (COND,TERM)
C_EXPR = {
OP_TYPE = CLOSE
OP_LEN = 1
[1]ARG_TYPE = WORD
[1]ARG_STAB = {}
}
AC_STAB = NULL
AC_EXPR = NULL
}
I'm afraid I got lost in the maze of twisty little yacc clauses -- all
alike. Well, not really, but there are a lot of them :-)
print "Just a (rare) core dump,\n"; lstat();
Andrew
--
Domain address: Andrew.Vignaux@comp.vuw.ac.nz