At 9:20 AM +0100 1/12/06, Frans Slothouber wrote:
>I ran into the following bug today:
>
>If the following program
>
>  DKWS38>type sys$login:tt.pl
>
>   my $t = `show default`;
>   print "hello $t\n";
>
>is run, while my current directory is set to
>a directory I do not have access to, as in:
>
>  DKWS38>set def foo$exe:
>  DKWS38>dir
>   %DIRECT-E-OPENIN, error opening foo$:[EXE]*.*;* as input
>   -RMS-E-PRV, insufficient privilege or file protection violation
>
>perl crashes with the following message:
>
>  DKWS38>perl sys$login:tt.pl
>
>  Fatal VMS error (status=98970) at
>DISK$PROSY_USER:[PROSY.FRANS.PERL-INTRAFFIC-5_8_7]VMS.C;1,
>  line 6896 at sys$login:tt.pl line 1.
>  %RMS-E-PRV, insufficient privilege or file protection violation

I can't reproduce this with the latest development snapshot:

$ DIR
%DIRECT-E-OPENIN, error opening DISK$ALPHASYS:[000000]*.*;* as input
-RMS-E-PRV, insufficient privilege or file protection violation
$ RECA PERL -E
$ perl -e "my $x=`show default`; print qq/hello $x\n/;"
hello   disk$alphasys:[000000]

If you have the privs to do it, try

$ set process/priv=CMKRNL
$ set watch file/class=major

then run the perl example again.  Turn it off with

$ set watch file/class=none

That should tell you what it's trying to access that it can't.  When
you spawn a process with backticks, there is a a command file called
vmspipe.com that it tries to locate, and if it can't find it, it will
create a temporary version in sys$scratch, sys$login, and sys$disk:[]
(trying each in order).  It's possible it's trying to create one of
these temporary files, though that shouldn't happen if vmspipe.com is
available at a reasonable location in your installation tree.
-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to