Marcus Meissner
80c2d64c36
- Add fix-57962.patch in order to fix bug #57962. OBS-URL: https://build.opensuse.org/request/show/793891 OBS-URL: https://build.opensuse.org/package/show/Base:System/make?expand=0&rev=68
31 lines
1.2 KiB
Diff
31 lines
1.2 KiB
Diff
diff --git a/lib/findprog-in.c b/lib/findprog-in.c
|
|
index c254f2f..d89ec00 100644
|
|
--- a/lib/findprog-in.c
|
|
+++ b/lib/findprog-in.c
|
|
@@ -26,6 +26,7 @@
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
+#include <sys/stat.h>
|
|
|
|
#include "filename.h"
|
|
#include "concat-filename.h"
|
|
@@ -190,6 +191,7 @@ find_in_given_path (const char *progname, const char *path,
|
|
dir = ".";
|
|
|
|
/* Try all platform-dependent suffixes. */
|
|
+ struct stat st;
|
|
for (i = 0; i < sizeof (suffixes) / sizeof (suffixes[0]); i++)
|
|
{
|
|
const char *suffix = suffixes[i];
|
|
@@ -208,7 +210,8 @@ find_in_given_path (const char *progname, const char *path,
|
|
use it. On other systems, let's hope that this program
|
|
is not installed setuid or setgid, so that it is ok to
|
|
call access() despite its design flaw. */
|
|
- if (eaccess (progpathname, X_OK) == 0)
|
|
+ if (eaccess (progpathname, X_OK) == 0 &&
|
|
+ stat(progpathname, &st) == 0 && S_ISREG(st.st_mode))
|
|
{
|
|
/* Found! */
|
|
if (strcmp (progpathname, progname) == 0)
|