ID:               32503
 User updated by:  Bjorn dot Wiberg at its dot uu dot se
 Reported By:      Bjorn dot Wiberg at its dot uu dot se
 Status:           Open
 Bug Type:         Filesystem function related
 Operating System: IBM AIX 5.2.0.0 ML5
 PHP Version:      5CVS-2005-07-05
 New Comment:

Hi again!

(Thanks for fixing the mpm_common crash, that problem is gone now.)

I'm pasting some test results (also used in bug #53201) here.


All the following with #define HAVE_BROKEN_GETCWD 1 in
main/php_config.h, and the following code (tests 1-4):

<?php

  print getcwd() . "<BR>";

  $handle = fopen("a.txt", "w", false);
  if ( $handle != FALSE ) {
    fputs($handle, "testtext");
    fclose($handle);
  }

?>

..and, respectively (tests 5-8):

<?php

  print getcwd() . "<BR>";

  $handle = fopen("./a.txt", "w", false);
  if ( $handle != FALSE ) {
    fputs($handle, "testtext");
    fclose($handle);
  }

?>


1. No existing "a.txt" file in the destination directory. With the
"read" flag missing to the "test" directory along the path, and write
permissions to the destination directory:

Warning: fopen(): open_basedir restriction in effect. File(a.txt) is
not
within the allowed path(s):
(.:/apache/php/lib/php/:/apache/htdocs/bwiberg/) in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 Warning:
fopen(a.txt): failed to open stream: Not owner in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5

No file gets created. getcwd() fails.

2. No existing "a.txt" file in the destination directory. Having both
read and execute flags along the path, and write permissions to the
destination directory:

/apache/htdocs/bwiberg/test/safemode
Warning: fopen(): Unable to access a.txt in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 Warning:
fopen(a.txt): failed to open stream: No such file or directory in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 

No file gets created. But getcwd() correctly returns "
/apache/htdocs/bwiberg/test/safemode".

3. No existing "a.txt" file in the destination directory. Trying with
"./a.txt" instead, a missing "read" flag to the "test" directory along
the path, and write permissions to the destination directory:

No error message. The a.txt file gets correctly created, but getcwd()
fails.

4. No existing "a.txt" file in the destination directory. Trying with
"./a.txt", both "read" and "execute" flags along the path, and write
permissions to the destination directory:

No error message. The file gets correctly created, and getcwd()
returns
"/apache/htdocs/bwiberg/test/safemode".

5. Existing "a.txt" file in the destination directory. With the "read"
flag missing to the "test" directory along the path, and write
permissions to the destination directory:

Warning: fopen(): open_basedir restriction in effect. File(a.txt) is
not
within the allowed path(s):
(.:/apache/php/lib/php/:/apache/htdocs/bwiberg/) in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 Warning:
fopen(a.txt): failed to open stream: Not owner in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5

File does not get overwritten. getcwd() fails.

6. Existing "a.txt" file in the destination directory. Having both
read
and execute flags along the path, and write permissions to the
destination directory:

No error message. File gets overwritten correctly. getcwd() returns
"/apache/htdocs/bwiberg/test/safemode".

7. Existing "a.txt" file in the destination directory. Trying with
"./a.txt" instead, a missing "read" flag to the "test" directory along
the path, and write permissions to the destination directory:

No error message. File gets overwritten correctly, but getcwd() fails.

8. Existing "a.txt" file in the destination directory. Trying with
"./a.txt", both "read" and "execute" flags along the path, and write
permissions to the destination directory:

No error message. File gets overwritten correctly. getcwd() returns
"/apache/htdocs/bwiberg/test/safemode".


I don't know if these results are useless because of the custom
HAVE_BROKEN_GETCWD 1 setting? Perhaps the tests would need to be redone
without that modification?

Best regards,
Björn


Previous Comments:
------------------------------------------------------------------------

[2005-07-05 10:21:38] Bjorn dot Wiberg at its dot uu dot se

(Thanks for fixing the mpm_common crash, that problem is gone now.)

With #define HAVE_BROKEN_GETCWD 1 in php_config.h, and having made sure
that the path up to the directory where the file is to be created has
sufficient permissions, I still get the same error:

/apache/htdocs/bwiberg/test/safemode
Warning: fopen(): Unable to access a.txt in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 Warning:
fopen(a.txt): failed to open stream: No such file or directory in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 

Having the read (r) permission off for the "test" directory along the
way:

Warning: fopen(): open_basedir restriction in effect. File(a.txt) is
not within the allowed path(s):
(.:/apache/php/lib/php/:/apache/htdocs/bwiberg/) in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5 Warning:
fopen(a.txt): failed to open stream: Not owner in
/apache/htdocs/bwiberg/test/safemode/write.php on line 5

Best regards,
Björn

------------------------------------------------------------------------

[2005-07-04 16:23:36] [EMAIL PROTECTED]

Try the latest CVS now, the crash should be fixed in it.
(and don't invent your own version naming again)


------------------------------------------------------------------------

[2005-07-04 13:54:42] Bjorn dot Wiberg at its dot uu dot se

With this release, Apache segfaults in mpm_common if I try to access
the directory where I have enabled safe mode:

[EMAIL PROTECTED]:/# gdb /nynom/apache/bin/httpd /home/bwiberg/core 
GNU gdb 5.0-aix51-020209
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "powerpc-ibm-aix5.2.0.0"...
Core was generated by `httpd'.
Program terminated with signal 11, Segmentation fault.
#0  0x10032354 in sig_coredump (sig=11) at mpm_common.c:1050
1050    mpm_common.c: No such file or directory.
(gdb) bt
#0  0x10032354 in sig_coredump (sig=11) at mpm_common.c:1050
#1  0xffffffff in ?? () from (unknown load module)

The Apache error log indicates:

[Mon Jul 04 13:51:52 2005] [notice] child pid 1654882 exit signal
Segmentation fault (11)
[Mon Jul 04 13:51:53 2005] [notice] child pid 1667296 exit signal
Segmentation fault (11)
[Mon Jul 04 13:51:53 2005] [notice] child pid 1155238 exit signal
Segmentation fault (11)
[Mon Jul 04 13:51:53 2005] [notice] child pid 290932 exit signal
Segmentation fault (11)
[Mon Jul 04 13:51:53 2005] [notice] child pid 892998 exit signal
Segmentation fault (11)
[Mon Jul 04 13:51:54 2005] [notice] child pid 1781880 exit signal
Segmentation fault (11)

This also happened with an earlier snapshot release (2005-06-21 10:30),
although I thought it would be a temporary error because of CVS
development.

Best regards,
Björn

------------------------------------------------------------------------

[2005-07-04 01:06:08] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip



------------------------------------------------------------------------

[2005-05-09 14:15:53] Bjorn dot Wiberg at its dot uu dot se

Hi again!

I just tried the #define HAVE_BROKEN_GETCWD 1 trick from
http://bugs.php.net/bug.php?id=32501, with PHP 5.0.4 (the "fixed"
version) but that didn't help in this regard. I thought I would mention
this.

Best regards,
Björn

------------------------------------------------------------------------

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/32503

-- 
Edit this bug report at http://bugs.php.net/?id=32503&edit=1

Reply via email to