ID: 29207 Updated by: php-bugs@lists.php.net Reported By: ksvee at usit dot uio dot no -Status: Feedback +Status: No Feedback Bug Type: Filesystem function related Operating System: Solaris 8 PHP Version: 4.3.10 New Comment:
No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". Previous Comments: ------------------------------------------------------------------------ [2005-02-03 05:01:34] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2004-12-22 12:23:02] ksvee at usit dot uio dot no Try including "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" in CFLAGS given to configure[1]. It seems it triggers something that prevents the bug from appering. Haven't really managed to trace the bug yet, but it might have something to do with the stat/VCWD_STAT in main/safe_mode.c that sets "uid = sb.st_uid", sb being the stat-struct. I'm now testing 4.3.11-dev (or rather stable cvs release php4-STABLE-200412220730, as bug #31121 prevents proper compile of 4.3.10 using sun cc[2]) with a generic Apache 1.3.33, and it seems to be working properly with safe_mode. [1]: CFLAGS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' \ CC='cc' CCC='CC' ./configure \ --with-apxs=/path/to/apxs \ --prefix=/my/prefix [2]: cc: Sun WorkShop 6 update 2 C 5.3 2001/05/15 ------------------------------------------------------------------------ [2004-12-21 11:58:47] ksvee at usit dot uio dot no Verified bug with Apache 1.3.33 and latest release (4.3.10) and latest stable cvs snapshot (php4-STABLE-200412210930). ------------------------------------------------------------------------ [2004-07-16 12:53:24] ksvee at usit dot uio dot no Description: ------------ This is really an old bug that seems to be coming and going, but I cannot find an open bug on it. References: bugs #18500, #12683 and #7744 The latest version that this bug is not alive and well is 4.2.3 which is the one we still use. I've tested (just about) every (release) version since, and reproduced the bug in all of them. That includes the latest (4.3.8) tested today, 2004-07-16. I use PHP with Apache 1.3.x (1.3.31 latest). Description: When using SAFE_MODE = ON, php reports uid=1 on the running php-script as well as its proper uid: ----- [datetag] [error] PHP Warning: Unknown(): SAFE MODE Restriction in effect. The script whose uid is 1 is not allowed to access /path/to/script.php owned by uid 26658 in Unknown on line 0 ----- If I chown the script to another user, e.g. root, the report looks like this: ----- [datetag] [error] PHP Warning: Unknown(): SAFE MODE Restriction in effect. The script whose uid is 1 is not allowed to access /path/to/script.php owned by uid 0 in Unknown on line 0 ----- If i chown it to uid=1 ('daemon' on my systems) then it seems to work, except that the file I intend to include also needs to be owned by daemon. This included file at least seems to have its owner reported correctly, the full report being: ----- [datetag] [error] PHP Warning: main(): SAFE MODE Restriction in effect. The script whose uid is 1 is not allowed to access ./filename.inc owned by uid 26658 in /a/b/c/include.php on line 2 [datetag] [error] PHP Warning: main(filename.inc): failed to open stream: Error 0 in /a/b/c/include.php on line 2 [datetag] [error] PHP Warning: main(): Failed opening 'filename.inc' for inclusion (include_path='.') in /a/b/c/include.php on line 2 ----- We usually use a non-standard config, compiling Apache, PHP, OpenSSL etc under a specific prefix, but dumbing this to default paths has no impact. Using "--with-apxs=/path/to/apxs --prefix=/path/to/installprefix" as the only config parameters to PHP too has no impact on the results. As for php.ini, I've tried using a clean copy of both "php.ini-recommended" and "php.ini-dist" with no other modifications than setting "safe_mode = On". No significant changes. Rgds, Kenneth Svee Reproduce code: --------------- # Content of include.php: <?php include("filename.inc"); ?> # (filename.inc is in same dir as include.php, and # contains just an arbitrary string, e.g.: "I've been included!" Expected result: ---------------- # I expected the string in filename.inc: "I've been included!" Actual result: -------------- Just the empty page, and the errormessages in Apaches error_log. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29207&edit=1