ID:               15801
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Filesystem function related
 Operating System: linux rh
 PHP Version:      4.1.2
 New Comment:

Please try using this CVS snapshot:

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

I am unable to replicate the problem using the latest CVS.


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

[2002-03-01 02:34:26] [EMAIL PROTECTED]

The reason for the difference comes down to a difference in what
happens when a resource that exists is checked via realpath() vs. a
resource that does not exist.  Often on a copy() operation the source
path exists, but the target doesn't.  That's obviously not always the
case.  The open_basedir check needs to be made more advanced and should
detect if the resource it is checking does not exist in which case it
should step back one level and check that path.  
If I fell inspired I'll fix it, but if someone else wants to, by all
means...

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

[2002-02-28 22:14:46] [EMAIL PROTECTED]

okay, i get the point...

but what about include() and upload_tmp_dir ?
if there were using the same mechanism as copy() (sorry i never had
much to look inside php source and verify by myself), they'd raise an
error too, right?
(they still point to symlinked path, and they still work, unlike copy()
)

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

[2002-02-28 22:10:45] [EMAIL PROTECTED]

Okay, i finally got it to work...
copy() doesnt seem to like symbolic links... when *both* open_basedir
and copy(path1, path2) paths are set to the "real" path, copy works...
However, that's still weird, as referencing files with symlinked path
by other means (auto_prepend_file and upload_tmp_dir config directives
and include() ) works without raising open_basedir error...
and also because this was working prior to 4.0.6, and, imha, it doesnt
make things more secure than before.

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

[2002-02-28 22:07:28] [EMAIL PROTECTED]

Well, the reason it works in 4.0.4 is that no open_basedir check is
done at all on copy() in that version.  It is wide open.  Now the check
is done, and yes, in your case it is due to the symlink you have.  The
open_basedir check is currently not very good at dealing with symlinked
directories.

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

[2002-02-28 21:32:31] [EMAIL PROTECTED]

Hi again,

i've got the same problem with 4.1.0 with mime upload patch...
While uploaded-file-copy may be circumvented with move_uploaded_file, i
found no solution for copying not-uploaded files from one place to
another. Note i'm always using full path in copy() and
move_uploaded_file(), and that all paths are within open_basedir
folder...

I've got no choice but downgrading even more... :(

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

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

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

Reply via email to