summaryrefslogtreecommitdiff
path: root/bin/ls/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ls/print.c')
-rw-r--r--bin/ls/print.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/bin/ls/print.c b/bin/ls/print.c
index 841270bbb2e9..2fab63a37de5 100644
--- a/bin/ls/print.c
+++ b/bin/ls/print.c
@@ -674,6 +674,14 @@ aclmode(char *buf, FTSENT *p, int *haveacls)
else
snprintf(name, sizeof(name), "%s/%s",
p->fts_parent->fts_accpath, p->fts_name);
+ /*
+ * We have no way to tell whether a symbolic link has an ACL since
+ * pathconf() and acl_get_file() both follow them.
+ */
+ if (S_ISLNK(p->fts_statp->st_mode)) {
+ *haveacls = 1;
+ return;
+ }
if ((ret = pathconf(name, _PC_ACL_EXTENDED)) <= 0) {
if (ret < 0 && errno != EINVAL)
warn("%s", name);