#40326 [Opn->Fbk]: Can't open file from cwd if parent folder not readable
| From: | tony2001@php.net | Date: | Mon, 12 Feb 2007 17:49:28 +0000 |
| Subject: | #40326 [Opn->Fbk]: Can't open file from cwd if parent folder not readable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-108748@lists.php.net to get a copy of this message | ||
ID: 40326
Updated by: tony2001@php.net
Reported By: sborrill at precedence dot co dot uk
-Status: Open
+Status: Feedback
Bug Type: Streams related
Operating System: NetBSD 3.1_STABLE
PHP Version: 5.2.0
New Comment:
Please provide an account on this machine.
Previous Comments:
------------------------------------------------------------------------
[2007-02-10 21:39:07] sborrill at precedence dot co dot uk
I've tracked this down to changes to virtual_file_ex() which is called
from expand_filepath(). expand_filepath() returns "/file" from "file"
with 5.2.0 (and later), but returns "file" with 5.1.6 and earlier. This
is down to changes between revisions 1.74.2.9 (v5.1.6) and 1.74.2.9.2.9
(v5.2.0) of TSRM/tsrm_virtual_cwd.c. I've not yet tracked it down
further.
------------------------------------------------------------------------
[2007-02-10 19:25:28] sborrill at precedence dot co dot uk
Yes, as per my original bug report, it is not fixed in the daily
snapshots. I've confirmed it today's too.
I can recreate it with the cli php binary too (i.e. I don't have to
test it from Apache).
------------------------------------------------------------------------
[2007-02-05 13:51:27] tony2001@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2007-02-05 13:45:38] sborrill at precedence dot co dot uk
OK, permissions are nearly the same (except in our case, it's the
parent of the www directory that is -r not the www itself, but that's
probably unimportant).
The getcwd() line shows a difference though. On NetBSD and other Unix
OSes (all except for Linux?) getcwd() returns FALSE as noted in
http://bugs.php.net/bug.php?id=24185
Perhaps the reason it's working for you on Linux is because your
getcwd() _isn't_ returning FALSE and there's now an extra getcwd() call
in the fopen codepath. N.B. as in my original report, with PHP 5.1.6,
getcwd() returned FALSE, but fopen worked nonetheless.
Also, the patches to PHP in the NetBSD package are the same between
5.1.6 and 5.2.0 (or if they differ it's in an unrelated section). The
patches related to php.ini, configure, curl and imap/c-client only.
Everything else is stock:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/php5/patches/
------------------------------------------------------------------------
[2007-02-05 09:40:56] tony2001@php.net
>What OS?
Linux
>Are you sure you've checked file ownership?
#ls -ld /www
d--x--x--x 15 tony users 2864 Feb 5 12:36 /www
#ls -l /www/index.php
-rw-r--r-- 1 tony users 110 Feb 5 12:36 /www/index.php
Apache runs as user "wwwrun".
>What do you get on the getcwd() lines?
string(4) "/www"
Please try the latest snapshot from http://snaps.php.net if
you're
using some patches/adopted version.
------------------------------------------------------------------------
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/40326
--
Edit this bug report at http://bugs.php.net/?id=40326&edit=1