Hi,
On AIX, like Solaris, when root, the test "test -x /tmp/AFile" returns true
even if the file is not executable.
This issue is there for ages.
Here attached is the patch for fixing it for v5.0 .
Would you mind adding it to the source code of bash ?
Thanks/Regards,
Tony
--- ./lib/sh/eaccess.c.ORIGIN 2019-03-06 16:15:23 +0100
+++ ./lib/sh/eaccess.c 2019-03-06 16:16:20 +0100
@@ -213,10 +213,10 @@
# else /* HAVE_EACCESS */ /* FreeBSD */
ret = eaccess (path, mode); /* XXX -- not always correct for X_OK */
# endif /* HAVE_EACCESS */
-# if defined (__FreeBSD__) || defined (SOLARIS)
+# if defined (__FreeBSD__) || defined (SOLARIS) || defined(_AIX)
if (ret == 0 && current_user.euid == 0 && mode == X_OK)
return (sh_stataccess (path, mode));
-# endif /* __FreeBSD__ || SOLARIS */
+# endif /* __FreeBSD__ || SOLARIS || _AIX */
return ret;
#elif defined (EFF_ONLY_OK) /* SVR4(?), SVR4.2 */
return access (path, mode|EFF_ONLY_OK);
@@ -232,7 +232,7 @@
if (current_user.uid == current_user.euid && current_user.gid == current_user.egid)
{
ret = access (path, mode);
-#if defined (__FreeBSD__) || defined (SOLARIS)
+#if defined (__FreeBSD__) || defined (SOLARIS) || defined(_AIX)
if (ret == 0 && current_user.euid == 0 && mode == X_OK)
return (sh_stataccess (path, mode));
#endif