git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] Fix testcase failure when extended attributes are in use

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 19, 2008, 19:59 UTC
Message-ID
<7viqro73w5.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<20081019122419.GA2015@riemann.deskinm.fdns.net>
Deskin Miller <deskinm@umich.edu> writes:
Show 11 quoted lines
> My patch, on the other hand, is to deal with 'ls' output in case a file has
> certain filesystem extended attributes.  These could be e.g. POSIX ACLs, or a
> SELinux security context, or perhaps others.  If such an extended attribute is
> present, 'ls -l' will print permissions with a '+' appended, e.g.
> -rw-r--r--+
> Instead of
> -rw-r--r--
> ...
> For what it's worth, I've experienced this failure on my Ubuntu 8.04 laptop
> with SELinux permissive mode, so it's possible ls behaves slightly differently
> on other systems; I've not been able to determine this one way or another.
Is there way to explicitly tell "ls -l" not to do this, I have to wonder?

POSIX.1 says that the file mode written under the -l option is "%c%s%s%s%c" (where the first %c is for type, three %s are for owner, group and other perm, and the last %c is "optional alternate access method flag"). If there is no alternate or additional access control method associated with the file, the "optional alternate access method flag" would be a single SP, otherwise it would be a printable character.

If we drop the default ACL from the trash directory like Matt's patch does, does a file created in there (i.e. the ones we check with /bin/ls) still have "alternate or additional access control method associated with" it?

Somehow it feels wrong that you need your patch, but if you do, stripping only the trailing '+' as your patch does not look sufficient, either. Shouldn't we be stripping the last letter if the length of actual is longer than strlen("-rwxrwxrwx"), as any printable can come there?

 t/t1301-shared-repo.sh |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
diff --git c/t/t1301-shared-repo.sh i/t/t1301-shared-repo.sh
index 2275caa..653362b 100755
--- c/t/t1301-shared-repo.sh
+++ i/t/t1301-shared-repo.sh
@@ -20,6 +20,10 @@ test_expect_success 'shared = 0400 (faulty permission u-w)' '
 	test $ret != "0"
 '
 
+modebits () {
+	ls -l "$1" | sed -e 's|^\(..........\).*|\1|'
+}
+
 for u in 002 022
 do
 	test_expect_success "shared=1 does not clear bits preset by umask $u" '
@@ -85,8 +89,7 @@ do
 
 		rm -f .git/info/refs &&
 		git update-server-info &&
-		actual="$(ls -l .git/info/refs)" &&
-		actual=${actual%% *} &&
+		actual="$(modebits .git/info/refs)" &&
 		test "x$actual" = "x-$y" || {
 			ls -lt .git/info
 			false
@@ -98,8 +101,7 @@ do
 
 		rm -f .git/info/refs &&
 		git update-server-info &&
-		actual="$(ls -l .git/info/refs)" &&
-		actual=${actual%% *} &&
+		actual="$(modebits .git/info/refs)" &&
 		test "x$actual" = "x-$x" || {
 			ls -lt .git/info
 			false
Previous: Deskin MillerNext: Deskin Miller
Message 5 of 7 in “Fix testcase failure when extended attributes are in use”
  1. Fix testcase failure when extended attributes are in useDeskin Miller, Oct 11, 2008
  2. Fix testcase failure when extended attributes are in useDeskin Miller, Oct 14, 2008
  3. Junio C HamanoOct 17, 2008
  4. Deskin MillerOct 19, 2008
  5. Junio C HamanoOct 19, 2008
  6. Deskin MillerOct 19, 2008
  7. Junio C HamanoOct 20, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.