aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2009-09-02 20:50:39 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2009-09-02 20:50:39 +0000
commita34292623ff852613c5d61c2acc986692928b0ca (patch)
tree6d3bf02c412708868180b8e0938357d4a3e9436c /bin
parent8d3635c4dbe64a3fbc5694cc4df287bc660a55b4 (diff)
downloadsrc-a34292623ff852613c5d61c2acc986692928b0ca.tar.gz
src-a34292623ff852613c5d61c2acc986692928b0ca.zip
Fix regression introduced in r196712 - the 'name' string needs
to be rewritten for each file we want to check ACL on. Without this change, ls(1) would check only the ACL on the first file to list.
Notes
Notes: svn path=/head/; revision=196773
Diffstat (limited to 'bin')
-rw-r--r--bin/ls/print.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/bin/ls/print.c b/bin/ls/print.c
index 2eb636e17080..3b80d93aefec 100644
--- a/bin/ls/print.c
+++ b/bin/ls/print.c
@@ -623,15 +623,19 @@ aclmode(char *buf, const FTSENT *p)
S_ISWHT(p->fts_statp->st_mode))
return;
+ if (previous_dev == p->fts_statp->st_dev && supports_acls == 0)
+ return;
+
+ if (p->fts_level == FTS_ROOTLEVEL)
+ snprintf(name, sizeof(name), "%s", p->fts_name);
+ else
+ snprintf(name, sizeof(name), "%s/%s",
+ p->fts_parent->fts_accpath, p->fts_name);
+
if (previous_dev != p->fts_statp->st_dev) {
previous_dev = p->fts_statp->st_dev;
supports_acls = 0;
- if (p->fts_level == FTS_ROOTLEVEL)
- snprintf(name, sizeof(name), "%s", p->fts_name);
- else
- snprintf(name, sizeof(name), "%s/%s",
- p->fts_parent->fts_accpath, p->fts_name);
ret = lpathconf(name, _PC_ACL_NFS4);
if (ret > 0) {
type = ACL_TYPE_NFS4;