+1 for applying this patch. and attached is yet another fix as my suggestion. (a bit dirty, and not tested enough).
Moriyoshi "Sara Golemon" <[EMAIL PROTECTED]> wrote: > I THINK the patch below will fix critical bug #20887, but it's late and > I've had a long day so I havn't begun to make sure it'll work properly in > any circumstance, could anyone else have a look and try it out? > > See my note in Bug #20887 for an explanation of what my theory about the > problem is. > > -Pollita > > Index: main/php_ini.c > =================================================================== > RCS file: /repository/php4/main/php_ini.c,v > retrieving revision 1.106 > diff -u -r1.106 php_ini.c > --- main/php_ini.c 12 Nov 2002 20:56:47 -0000 1.106 > +++ main/php_ini.c 12 Dec 2002 06:49:50 -0000 > @@ -298,7 +298,9 @@ > char *separator_location = > strrchr(binary_location, DEFAULT_SLASH); > > if (separator_location) { > - *(separator_location+1) = 0; > + separator_location[0] = '\0'; > + } else { > + binary_location[0] = '\0'; > } > if (*php_ini_search_path) { > strcat(php_ini_search_path, paths_separator); > > > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php >
Index: main/php_ini.c =================================================================== RCS file: /repository/php4/main/php_ini.c,v retrieving revision 1.106 diff -u -r1.106 php_ini.c --- main/php_ini.c 12 Nov 2002 20:56:47 -0000 1.106 +++ main/php_ini.c 12 Dec 2002 07:52:04 -0000 @@ -287,11 +287,21 @@ efree(binary_location); binary_location = NULL; } +#elif defined(__linux__) + binary_location = (char *) emalloc(MAXPATHLEN); + binary_location = realpath("/proc/self/exe", binary_location); +#elif defined(__svr4__) + binary_location = (char *) emalloc(MAXPATHLEN); + binary_location = realpath("/proc/self/object/a.out", binary_location); +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + binary_location = (char *) emalloc(MAXPATHLEN); + binary_location = realpath("/proc/curproc/file", binary_location); #else + binary_location = NULL; if (sapi_module.executable_location) { - binary_location = estrdup(sapi_module.executable_location); - } else { - binary_location = NULL; + if (sapi_module.executable_location[0] == DEFAULT_SLASH) { + binary_location = +estrdup(sapi_module.executable_location); + } } #endif if (binary_location) {
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php