# New Ticket Created by Dan Sugalski # Please include the string: [perl #33028]
# in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=33028 >
A plain
./parrot foo.pbc
when foo.pbc doesn't exist triggers a core dump on OS X.
strlen() is puking on the NULL return from Parrot_locate_runtime_file() in Parrot_readbc. Attached patch fixes this behavior.
-- Matt
Matthew Zimmerman Interdisciplinary Biophysics, University of Virginia http://www.people.virginia.edu/~mdz4c/
Index: src/embed.c =================================================================== RCS file: /cvs/public/parrot/src/embed.c,v retrieving revision 1.125 diff -u -B -r1.125 embed.c --- src/embed.c 4 Dec 2004 09:09:01 -0000 1.125 +++ src/embed.c 13 Dec 2004 16:18:07 -0000 @@ -223,6 +223,11 @@ fullname = Parrot_locate_runtime_file(interpreter, filename, PARROT_RUNTIME_FT_PBC); + if ( fullname == NULL ) { + PIO_eprintf(interpreter, "Parrot VM: Can't locate %s, code %i.\n", + filename, errno); + return NULL; + } fs = interpreter->current_file = string_make(interpreter, fullname, strlen(fullname), "iso-8859-1", 0); if (!Parrot_stat_info_intval(interpreter, fs, STAT_EXISTS)) {