Hello community,

here is the log from the commit of package make for openSUSE:Factory checked in 
at 2020-04-25 20:08:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/make (Old)
 and      /work/SRC/openSUSE:Factory/.make.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "make"

Sat Apr 25 20:08:09 2020 rev:45 rq:795530 version:4.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/make/make.changes        2020-04-08 
19:54:11.325014037 +0200
+++ /work/SRC/openSUSE:Factory/.make.new.2738/make.changes      2020-04-25 
20:08:16.503541646 +0200
@@ -1,0 +2,5 @@
+Tue Apr 14 13:30:14 UTC 2020 - Martin Liška <[email protected]>
+
+- Add fix-57962.patch in order to fix bug #57962.
+
+-------------------------------------------------------------------

New:
----
  fix-57962.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ make.spec ++++++
--- /var/tmp/diff_new_pack.hQmOwI/_old  2020-04-25 20:08:17.459543617 +0200
+++ /var/tmp/diff_new_pack.hQmOwI/_new  2020-04-25 20:08:17.463543625 +0200
@@ -28,6 +28,7 @@
 # keyring downloaded from 
https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=make&download=1
 Source2:        %{name}.keyring
 Patch1:         make-testcases_timeout.diff
+Patch2:         fix-57962.patch
 Patch5:         test-driver.patch
 Patch64:        make-library-search-path.diff
 BuildRequires:  autoconf
@@ -45,6 +46,7 @@
 %prep
 %setup -q
 %patch1 -p1
+%patch2 -p1
 %patch5 -p1
 if [ %{_lib} = lib64 ]; then
 %patch64 -p1

++++++ fix-57962.patch ++++++
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)


Reply via email to