[perl #130904] X::Binding::TypeCheck with split and alternates

2017-03-02 Thread via RT
# New Ticket Created by Samantha McVey # Please include the string: [perl #130904] # in the subject line of all future correspondence about this issue. # https://rt.perl.org/Ticket/Display.html?id=130904 > "A-B C".split([" ", "-"]) when it tries to swap something going via the IB2 sub. It get

Re: [perl #130776] Environment variables are case insensitive on Windows

2017-03-02 Thread A. Sinan Unur
I have done some research on this issue. The "correct" behavior seems to be to match what Windows would do in cmd.exe. That would provide the users with the least surprise. Michael Kaplan's guidance[1] on file names seems to also describe how Windows handles names of environment variables: > For

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Zefram
Timo Paulssen via RT wrote: >Thankfully, \0 won't accept diacritics, Ah, quite right. I forgot about that rule. The text segmentation standard says that there's a grapheme cluster boundary before and after every control character, except in the middle of a CR-LF sequence. Hence a nul codepoint (

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Zefram
Brandon Allbery via RT wrote: >It's also less than awesome that POSIX, at least, doesn't let you confirm >that a filename is syntactically valid, At the syscall interface it's very simple: any sequence of non-nul octets may be used as a pathname. Since the pathname is passed in nul-delimited form

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Brandon Allbery
On Thu, Mar 2, 2017 at 9:14 AM, Joachim Durchholz wrote: > For the other invalid characters, the error will (well: should) be caught > by the filesystem. > Trying to check that in advance is a security hole in waiting - somebody > might mount or unmount filesystems between check and use. > This,

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Joachim Durchholz
On 02.03.2017 14:56, Brandon Allbery wrote: - any character disallowed by specific filesystems (consider CIFS) Wouldn't these characters be caught by the file system (whichever that is)? It would be pretty hard to do a reliable validation as soon as mounted filesystems come into play. Amon

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Brandon Allbery
On Thu, Mar 2, 2017 at 8:56 AM, Brandon Allbery wrote: > - the sequence `//` which is specifically undefined by POSIX In the interests of heading off incoming pedanticness, possibly to "defend" the indefensible: this is only undefined as a prefix. It is an error as an infix. -- brandon s all

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Brandon Allbery
To be clear: the POSIX spec does, specifically, disallow NUL. *Only* NUL. Which then leaves: - any character disallowed by specific filesystems (consider CIFS) - the sequence `//` which is specifically undefined by POSIX Among others. Is it correct to disallow NUL and thereby have a special case

[perl #130900] [BUG] nul in pathname

2017-03-02 Thread Zoffix Znet via RT
FWIW, this bug makes at least mild exploitation possible, depending on how the program validates input: Setup: dir and input check to ensure user-supplied path is not outside of it: 13:41 IOninja m: "/tmp/root/tmp".IO.mkdir; "/tmp/root/secret.txt".IO.spurt: 'p4sswrd'; 13:41

Re: [perl #130900] [BUG] nul in pathname

2017-03-02 Thread Brandon Allbery
On Thu, Mar 2, 2017 at 5:29 AM, Zefram wrote: > It is less than awesome that > Perl 6 accepts "foo\x[0]bar" as a pathname, when it doesn't resemble > any pathname valid on the OS > It's also less than awesome that POSIX, at least, doesn't let you confirm that a filename is syntactically valid, e

[perl #130900] [BUG] nul in pathname

2017-03-02 Thread via RT
# New Ticket Created by Zefram # Please include the string: [perl #130900] # in the subject line of all future correspondence about this issue. # https://rt.perl.org/Ticket/Display.html?id=130900 > > spurt("foo\x[0]bar", "wibble") True The above writes to a file named "foo". It is less than