diff options
author | Stanislav Malyshev <stas@php.net> | 2013-08-18 14:20:46 -0700 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2013-08-18 14:20:46 -0700 |
commit | 4fbce676bd505f92be771ba1ce106b67a3317aff (patch) | |
tree | fbdc131febe66cb0bcd5a89ac8e971a51721c0ef /main | |
parent | 756ce65b92de3be5841cd7e0a4cdef1173bc31dd (diff) | |
parent | b980e4fedc945dd0a45d73349716f6ab18a97635 (diff) | |
download | php-git-4fbce676bd505f92be771ba1ce106b67a3317aff.tar.gz |
Merge branch 'pull-request/381'
* pull-request/381:
Fixed #65225: PHP_BINARY incorrectly set
Diffstat (limited to 'main')
-rw-r--r-- | main/main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/main/main.c b/main/main.c index a79a78c0e1..2f56afa03a 100644 --- a/main/main.c +++ b/main/main.c @@ -114,6 +114,10 @@ #endif /* }}} */ +#ifndef S_ISREG +#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#endif + PHPAPI int (*php_register_internal_extensions_func)(TSRMLS_D) = php_register_internal_extensions; #ifndef ZTS @@ -275,13 +279,14 @@ static void php_binary_init(TSRMLS_D) if ((envpath = getenv("PATH")) != NULL) { char *search_dir, search_path[MAXPATHLEN]; char *last = NULL; + struct stat s; path = estrdup(envpath); search_dir = php_strtok_r(path, ":", &last); while (search_dir) { 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)) { + if (VCWD_REALPATH(search_path, binary_location) && !VCWD_ACCESS(binary_location, X_OK) && VCWD_STAT(binary_location, &s) == 0 && S_ISREG(s.st_mode)) { found = 1; break; } |