SELinux: print denials for buggy kernel with unknown perms
authorEric Paris <eparis@redhat.com>
Mon, 23 Nov 2009 21:47:23 +0000 (16:47 -0500)
committerJames Morris <jmorris@namei.org>
Tue, 24 Nov 2009 03:30:49 +0000 (14:30 +1100)
commit0bce95279909aa4cc401a2e3140b4295ca22e72a
tree5b98e4ebe7ef30fa1edf627c79501c531b346a8b
parentc4a5af54c8ef277a59189fc9358e190f3c1b8206
SELinux: print denials for buggy kernel with unknown perms

Historically we've seen cases where permissions are requested for classes
where they do not exist.  In particular we have seen CIFS forget to set
i_mode to indicate it is a directory so when we later check something like
remove_name we have problems since it wasn't defined in tclass file.  This
used to result in a avc which included the permission 0x2000 or something.
Currently the kernel will deny the operations (good thing) but will not
print ANY information (bad thing).  First the auditdeny field is no
extended to include unknown permissions.  After that is fixed the logic in
avc_dump_query to output this information isn't right since it will remove
the permission from the av and print the phrase "<NULL>".  This takes us
back to the behavior before the classmap rewrite.

Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
security/selinux/avc.c
security/selinux/ss/services.c