BUG in ISC UNIX 2.2
Conor P. Cahill
cpcahil at virtech.uucp
Sun Jul 1 07:23:56 AEST 1990
Although I can't find it documented anywhere, ISC has apparently added
support for exec(2) interpretation of the "#!interpreter" line at
the begining of a script file. This works pretty well until you give
it a name that is longer than 18 bytes.
For example:
A file containing:
#!/usr/bin/perl
{perl script stuff}
will work correctly.
HOWEVER,
The same file, with the first line changed as follows:
#!/usr/local/bin/perl
{perl scrip stuff }
will lock up. (By lock up, I mean it executes a kernel sleep at
a priority so high that it can't be interrupted!). And this is
only part of the problem. When it locks up, it still has the
directory locked and therefore any access to the directory will
also lock up.
The only way to get the directory is to re-boot the system.
This only happens when the file actually exists (i.e if the line
has /usr/local/bin/perly which does't exist, I would get an error
message that "program" wasn't found where program is the name of the
script file, not the interpreter).
When I discovered this, I tested it with a copy of /bin/sh (copying it
to:
/usr/local/bin/sh which worked
/usr/local/bin/shi which worked
/usr/local/bin/shit which locked up
So I know that it is not a problm with any PD software.
--
Conor P. Cahill (703)430-9247 Virtual Technologies, Inc.,
uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160
Sterling, VA 22170
More information about the Comp.unix.i386
mailing list