#41899 [Opn]: Can't open files with leading relative path of '..' and '..' is not readable

From: Date: Tue, 09 Oct 2007 06:58:42 +0000
Subject: #41899 [Opn]: 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-118313@lists.php.net to get a copy of this message
ID: 41899 User updated by: geoffwa at cs dot rmit dot edu dot au Reported By: geoffwa at cs dot rmit dot edu dot au Status: Open Bug Type: Streams related Operating System: Solaris 10 PHP Version: 5.2.3 Assigned To: ab5602 New Comment: Err are you running with safe mode on? $ ./php5.2-200710080430-debug -dsafe_mode=0 test2.php SUCCESS Previous Comments: ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ [2007-10-08 03:04:17] ab5602@php.net 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 Try the latest CVS snapshot. Fixed the 41822 bug, which I feel is probably the same. ------------------------------------------------------------------------ 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

« previous php.bugs (#118313) next »