Version PHP 5.1
file main/php_init.c
function int php_init_config() uses realpath.
In NetWare our earlier releases of LibC SDK has no realpath
implementation.

I could see the following lines in TSRM/tsrm_virtual_cwd.c

#ifndef HAVE_REALPATH
#define realpath(x,y) strcpy(y,x)
#endif

Why not this be in TSRM/tsrm_virtual_cwd.h so that it will work in all
the cases.

Can I go ahead and checkin this?

I have two concerns with this "solution" (both here and in TSRM).

(1) Security: Both internally with checks such as open_basedir and in userspace when evaluating URL parameters (an all too common practice).

(2) Functionality: require_once()/include_once() could be fooled into including the same file twice.

Granted #2 requires specific circumstances and #1 can be worked around for tightly managed systems running no external packages.

How about a more expensive, but more closely aproximating substitute to satisfy all of these?

/* psuedo-code */
#ifndef HAVE_REALPATH
realpath(...) {
itterate path from root:
 if symlink, resolve
 if dir, append next portion of remaining path
 otherwise, ergh...whatever realpath() would do in this situation...
loop
}
#endif
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to