mirror of
https://github.com/php/php-src.git
synced 2026-04-24 00:18:23 +02:00
- Don't pick up php.ini from cwd on BSDs
- "Resolve" (with the help of $PATH) to /path/to/php and pick up the php.ini from there
This commit is contained in:
+20
-1
@@ -351,7 +351,26 @@ int php_init_config(TSRMLS_D)
|
||||
#else
|
||||
if (sapi_module.executable_location) {
|
||||
binary_location = (char *)emalloc(PATH_MAX);
|
||||
if (!realpath(sapi_module.executable_location, binary_location)) {
|
||||
if (!strchr(sapi_module.executable_location, '/')) {
|
||||
char *path;
|
||||
int found = 0;
|
||||
|
||||
if ((path = getenv("PATH")) != NULL) {
|
||||
char *search_dir, search_path[MAXPATHLEN];
|
||||
|
||||
while ((search_dir = strsep(&path, ":")) != NULL) {
|
||||
snprintf(search_path, MAXPATHLEN, "%s/%s", search_dir, sapi_module.executable_location);
|
||||
if (VCWD_REALPATH(search_path, binary_location) && !VCWD_ACCESS(binary_location, X_OK)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
efree(binary_location);
|
||||
binary_location = NULL;
|
||||
}
|
||||
} else if (!VCWD_REALPATH(sapi_module.executable_location, binary_location) || VCWD_ACCESS(binary_location, X_OK)) {
|
||||
efree(binary_location);
|
||||
binary_location = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user