]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Adapt to new SELinux behavior: "?" vs. new "unlabeled"
authorJim Meyering <jim@meyering.net>
Wed, 5 Sep 2007 08:57:54 +0000 (10:57 +0200)
committerJim Meyering <jim@meyering.net>
Wed, 5 Sep 2007 08:58:45 +0000 (10:58 +0200)
* src/ls.c (gobble_file): Interpret the new "unlabeled" indicator
from getfilecon/lgetfilecon the same way we interpret a negative
return value: no security context.  So we don't print the "+".
* tests/selinux: Recognize that "unlabeled" means insufficient
support for SELinux, just like "?".

ChangeLog
src/ls.c
tests/selinux

index cf1cffcde94972edd3f022d00441febbcce8e0f0..b8805358ac95b594766738b5fb7865c81a74506a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-09-05  Jim Meyering  <jim@meyering.net>
+
+       Adapt to new SELinux behavior: "?" vs. new "unlabeled"
+       * src/ls.c (gobble_file): Interpret the new "unlabeled" indicator
+       from getfilecon/lgetfilecon the same way we interpret a negative
+       return value: no security context.  So we don't print the "+".
+       * tests/selinux: Recognize that "unlabeled" means insufficient
+       support for SELinux, just like "?".
+
 2007-09-03  Jim Meyering  <jim@meyering.net>
 
        Invoke $(AUTOCONF) manually, if needed to get an updated version string.
index 5eacbad0d43bea77476bfa44508ab479f8a919b7..946e7116973c95b9432fda4cc0c92dfe906f0123 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -2651,7 +2651,8 @@ gobble_file (char const *name, enum filetype type, ino_t inode,
                          ?  getfilecon (absolute_name, &f->scontext)
                          : lgetfilecon (absolute_name, &f->scontext));
          err = (attr_len < 0);
-         file_has_security_context = (err == 0);
+         file_has_security_context =
+           (err == 0 && ! STREQ ("unlabeled", f->scontext));
 
          /* When requesting security context information, don't make
             ls fail just because the file (even a command line argument)
index 087658a39009d3106f106a9351052ba99544089d..2026a6a9856f7207329113d022bf0bf8015c43f4 100644 (file)
@@ -1,4 +1,4 @@
-# Is a test expensive?
+# Skip this test if there is insufficient SELinux support.
 # Copyright (C) 2007 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-test "`ls -Zd .`" = '? .' &&
-  {
+case `ls -Zd .` in
+  '? .'|'unlabeled .')
     echo "$0: skipping this test; this system (or maybe just" 1>&2
     echo "   the current file system) lacks SELinux support" 1>&2
     (exit 77); exit 77
-  }
+  ;;
+esac