@ Return appropriate error code for CheckMountPermission().
I was returning -EPERM if something is wrong with CheckMountPermission().
But SELinux determines whether selinuxfs is supported by kernel
based on whether error code is -ENODEV or not.
So I stopped returning -EPERM unconditionally.
@ Fix "allow_argv0 ... if if ..." bug.
It was impossible to use a word "if" to the second argument of
allow_argv0 if condition part is used.
@ Update recvmsg() hooks.
Until now, it was impossible to apply network access control for
incoming UDP and RAW packets if they are brought to userland using
read() or recvmsg() with NULL address because address buffer is NULL.
I moved hooks from sock_recvmsg() to skb_recv_datagram() so that
network access control for incoming UDP and RAW packets always work.
@ Drop MSG_PEEK'ed message before skb_free_datagram().
I need to remove head message from unwanted source
from socket's receive queue so that the caller can pick up
next message from wanted source with MSG_PEEK flags.
@ Avoid eating memory after quota exceeded.
Although ACL entries in a domain won't be added if the domain's quota
has exceeded, SaveName() in AddFileACL() is called anyway.
This caused unneeded memory consumption.
Now, quota checking is done before getting domain_acl_lock lock.
This may exceed quota by one or two entries, but that won't matter.
@ Add missing down() in AddReservedEntry().
Mutex debugging capability told me that I had forgotten to call down()
since TOMOYO version 1.3.2 .
This function is not called by learning mode,
so the semaphore's counter will not overflow for normal usage.
Version 1.4.3 2007/11/11 Bug fix release.