On Aug 7, 2010, at 4:39 PM, Craig A. Berry wrote:

On Jul 16, 2010, at 6:43 PM, Craig A. Berry wrote:


On Jul 10, 2010, at 2:05 PM, Mark Berryman wrote:

Is the following expected behavior?

With normal default protections set:

$ say := write sys$output
$ say f$env("protection")
SYSTEM=RWED, OWNER=RWED, GROUP=RE, WORLD
$ perl -e "open(F,'>1.1'); print F 1; close F;"
$ dir/sec 1.1

Directory USERS:[BERRYMAN]

1.1;1                [BERRYMAN]                       (RWD,RWD,R,)

However, change the owner default to read-only and:

$ set prot=ow:re/def
$ say f$env("protection")
SYSTEM=RWED, OWNER=RE, GROUP=RE, WORLD
$ perl -e "open(F,'>1.1'); print F 1; close F;"
$ dir/sec 1.1

Directory USERS:[BERRYMAN]

1.1;1                [BERRYMAN]                       (R,R,R,)

Why is the file being created with system only having Read access when the owner default is set to read?


Good question. And the other weird thing is it gives you only read protection when you asked for execute as well. I have a feeling that it's line 2601 of perlio.c, but I need to read up and remind myself how Unix protection masks interact with VMS default protections. The current perlio.c is at:

<http://perl5.git.perl.org/perl.git/blob/HEAD:/perlio.c>

and the lines I'm suspecting look like:

2600             imode = PerlIOUnix_oflags(mode);
2601             perm = 0666;

Should that be 0777 or something in order to assume VMS defaults?


I did a bit more digging, and yes, I think the 0666 permissions on the open() call are where things go wrong.

Luckily, I think the fix will be easy

There were no objections (or confirmations either, for that matter), so the fix is now committed at:

<http://perl5.git.perl.org/perl.git/commitdiff/5e2ce0f3dcb618e7ce72180948b6c29c8b949a53 >

This will likely first appear in 5.14.0, which will likely come out in Q2 of 2011.


________________________________________
Craig A. Berry
mailto:craigbe...@mac.com

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

Reply via email to