PKGBUILDs/extra/xulrunner/fix-mozilla-launcher.patch
2009-10-09 21:23:22 -05:00

23 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;
}