svn commit: r196773 - head/bin/ls

Edward Tomasz Napierala trasz at FreeBSD.org
Wed Sep 2 20:50:40 UTC 2009


Author: trasz
Date: Wed Sep  2 20:50:39 2009
New Revision: 196773
URL: http://svn.freebsd.org/changeset/base/196773

Log:
  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.

Modified:
  head/bin/ls/print.c

Modified: head/bin/ls/print.c
==============================================================================
--- head/bin/ls/print.c	Wed Sep  2 17:33:51 2009	(r196772)
+++ head/bin/ls/print.c	Wed Sep  2 20:50:39 2009	(r196773)
@@ -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;


More information about the svn-src-head mailing list