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

Reply via email to