mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
24 lines
955 B
Diff
24 lines
955 B
Diff
|
--- xulrunner/stub/nsXULStub.cpp 2008-07-17 21:43:11.000000000 +0200
|
||
|
+++ xulrunner/stub/nsXULStub.cpp 2008-07-17 21:47:04.000000000 +0200
|
||
|
@@ -208,8 +208,10 @@
|
||
|
// 3) give up
|
||
|
|
||
|
struct stat fileStat;
|
||
|
+ char *testp;
|
||
|
|
||
|
- if (!realpath(argv[0], iniPath) || stat(iniPath, &fileStat)) {
|
||
|
+ testp = realpath(argv[0], iniPath);
|
||
|
+ if (!(testp != NULL && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) || (testp != NULL && stat(iniPath, &fileStat))) {
|
||
|
const char *path = getenv("PATH");
|
||
|
if (!path)
|
||
|
return 1;
|
||
|
@@ -222,7 +224,7 @@
|
||
|
char *token = strtok(pathdup, ":");
|
||
|
while (token) {
|
||
|
sprintf(tmpPath, "%s/%s", token, argv[0]);
|
||
|
- if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0) {
|
||
|
+ if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) {
|
||
|
found = PR_TRUE;
|
||
|
break;
|
||
|
}
|