worley@compass.com (Dale Worley) (12/13/90)
Problem: Unterminated format in 'eval' causes Perl to crash. To reproduce: Run the program: eval "format STDOUT = \n"; Analysis: The loop at line 2344 in load_format in toke.c assumes that if the input buffer is exhausted it can read from the file 'rsfp'. This is not correct if the input is from an 'eval'. Fix: Replace line 2344 with: while (s < bufend || (rsfp && (s = str_gets(linestr,rsfp, 0)) != Nullch)) { This will cause the 'while' loop to terminate correctly and report a "Format not terminated" error. (This fix might not be entirely correct, since the relationship between 'in_eval' and 'rsfp' is not entirely clear to me.) Dale Dale Worley Compass, Inc. worley@compass.com -- The only constant through history is the beaurocratic mentality.