#41899 [Opn->Fbk]: Can't open files with leading relative path of '..' and '..' is not readable
| From: | tony2001@php.net | Date: | Tue, 09 Oct 2007 16:07:48 +0000 |
| Subject: | #41899 [Opn->Fbk]: Can't open files with leading relative path of '..' and '..' is not readable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-118324@lists.php.net to get a copy of this message | ||
ID: 41899
Updated by: tony2001@php.net
Reported By: geoffwa at cs dot rmit dot edu dot au
-Status: Open
+Status: Feedback
Bug Type: Streams related
Operating System: Solaris 10
PHP Version: 5.2.3
Assigned To: ab5602
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.2-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.2-win32-installer-latest.msi
Previous Comments:
------------------------------------------------------------------------
[2007-10-09 06:58:42] geoffwa at cs dot rmit dot edu dot au
Err are you running with safe mode on?
$ ./php5.2-200710080430-debug -dsafe_mode=0 test2.php
SUCCESS
------------------------------------------------------------------------
[2007-10-09 06:56:17] geoffwa at cs dot rmit dot edu dot au
I can send you a tar, but I doubt that'll help matters. Here's the
directory:
-------
drwxrwxrwx 2 geoffwa staff 512 Oct 9 16:44 .
drwx------ 8 geoffwa staff 512 Oct 8 15:14 ..
-rwx------ 1 geoffwa staff 3.7M Oct 9 16:23 php5.2-200710080430
-rwx------ 1 geoffwa staff 11M Oct 9 16:44 php5.2-200710080430-debug
-rw------- 1 geoffwa staff 2.7K Oct 8 15:17 test.php
-rw------- 1 geoffwa staff 301 Oct 8 15:21 test2.php
-------
(set . to 0777 for demonstration purposes)
(run the smaller of the two example scripts)
$ ./php5.2-200710080430-debug test2.php
Warning: mkdir(): Unable to access ./a in /homedir/test2.php on line 3
mkdir failed
------------------------------------------------------------------------
[2007-10-08 17:39:26] ab5602@php.net
Also, tested the longer script posted in this thread. That appears to
work for me as well.
[1339][rob@opteron:/test/abc]$ uname -a
SunOS opteron 5.10 Generic_118855-14 i86pc i386 i86pc
[1339][rob@opteron:/test/abc]$ ./php-cvs -v
PHP 5.2.5-dev (cli) (built: Oct 7 2007 11:26:15) (DEBUG)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
[1339][rob@opteron:/test/abc]$ ./php-cvs ./test.php
Current working directory is: /test/abc
Opened /test/abc/a/b/file
Opened ./a/b/file from ./a using ./b/file
Opened ./a/b/file from ./a using ./b/c/../file
Opened ./a/b/file from ./a/b/c using ../file
Opened ../file from ./a/b/c using ./../file
Opened ./a/b/file from ./a/b using ./file
Opened ./a/file from ./a/b using ./c/../../file
Opened ./a/b/c/file from ./a/b/c using ../c/file
[1339][rob@opteron:/test/abc]$
------------------------------------------------------------------------
[2007-10-08 13:42:25] ab5602@php.net
Geoffwa or ian, could you please send me a .tar with the directory
structure and permissions you are using along with instructions on how
to reproduce the error?
The script works just fine for me in Solaris with the most recent CVS.
-------
d--x--x--x 2 rob rob 512 Oct 8 09:24 .
drwxr-xr-x 20 rob rob 1536 Oct 8 09:15 ..
-rwxr-xr-x 1 rob rob 10620420 Oct 8 09:17 php-cvs
-rw-r--r-- 1 rob rob 301 Oct 8 09:17 test.php
-------
[0925][rob@opteron:~/mkdirtest]$ ./php-cvs ./test.php
Warning: mkdir(): Permission denied in
/export/home/rob/mkdirtest/test.php on line 3
mkdir failed
[0925][rob@opteron:~/mkdirtest]$ chmod u+w .
[0925][rob@opteron:~/mkdirtest]$ ./php-cvs ./test.php
SUCCESS
[0925][rob@opteron:~/mkdirtest]$
------------------------------------------------------------------------
[2007-10-08 05:31:15] ab5602@php.net
With php5.2-200710080430 the problem is worse, not better.
I can't even mkdir() in my test script any more!
<?php
ini_set('display_errors', '1');
mkdir("./a/b", 0700, true) or die('mkdir failed');
touch("./a/b/file") or die('touch failed');
chmod("./a", 0300) or die('chmod failed');
chdir("./a/b") or die('chdir failed');
$fp = fopen('../b/file', 'r');
if ($fp) print "SUCCESS\n";
else print "FAILURE\n";
?>
produces:
Warning: mkdir(): Unable to access ./a in
/home/g/geoffwa/work/test/test2.php on line 3
mkdir failed
Looking at truss, the last four syscalls are:
getcwd("/home/g/geoffwa/work/test", 1024) = 0
resolvepath("./a", 0xFFBFD238, 1024) Err#2 ENOENT
stat("a", 0xFFBFDF20) Err#2 ENOENT
stat("a", 0xFFBFDF20) Err#2 ENOENT
I'd also like to point out that the Solaris getcwd() works fine:
(from the man page)
The getcwd() function may fail if:
EACCES A parent directory cannot be read to get its
name.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/41899
--
Edit this bug report at http://bugs.php.net/?id=41899&edit=1