At 06:55 PM 6/10/2003 -0700, Rasmus Lerdorf wrote:
On Tue, 10 Jun 2003, Ilia A. wrote:
> As far as realpath() goes beyond the _once() directives and php installations
> where safe_mode or open_basedir are enabled it is not really needed. To
> handle safe_mode/open_basedir is fairly easy and mostly involves passing
> TSRMLS_CC to virtual_file_ex() and then putting realpath related code inside
> if (PG(safe_mode) || PG(open_basedir)) {. I already have a patch for this. I
> wonder if instead of comming up with an alternative way, which is likely to
> involve stat() or lstat(). We could add a flag that would allow us to
> identify *_once requests and make realpath conditional on that.


The main issue here is that we do an implicit require_once on the main
script now.  If you remove the realpath() on that main script load, then a
subsequent include_once on the same file through the actual path, or a
different symlinked path will not be caught.

Personally I think this is way too much of an edge case to warrant the
horribly expensive realpath() call on every single request and I am
perfectly fine simply telling people not to do that.  We lived with this
situation for a long time and it was only recently someone "fixed" this.

Personally I think the way to fix this is to have a realpath cache and not to break functionality.
This could be implemented relatively easily and would give you the speed you want without breaking anything.


Andi


-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to