On Wed, 2006-07-12 at 16:12 -0500, Venkat Yekkirala wrote: > This adds security for IP sockets at the sock level. Security at the > sock level is needed to enforce the SELinux security policy for security > associations even when a sock is orphaned (such as in the TCP LAST_ACK state). > > Signed-off-by: Venkat Yekkirala <[EMAIL PROTECTED]> > --- > > include/linux/security.h | 12 ++++++++++++ > include/net/sock.h | 13 +++++++++++++ > net/core/sock.c | 2 +- > security/dummy.c | 5 +++++ > security/selinux/hooks.c | 27 +++++++++++++++++++++------ > security/selinux/include/objsec.h | 1 + > 6 files changed, 53 insertions(+), 7 deletions(-) >
> @@ -3564,6 +3574,10 @@ static unsigned int selinux_sk_getsid_se > > if (isec) > sock_sid = isec->sid; > + else { > + struct sk_security_struct *sksec = sk->sk_security; > + sock_sid = sksec->sid; > + } > > read_unlock_bh(&sk->sk_callback_lock); > return sock_sid; Is it ever possible for the isec->sid and the sksec->sid to be inconsistent with one another? Could you just always return the sksec->sid here and avoid the need to grab the isec altogether (dropping the requirement for sk_callback_lock at the same time, since you no longer need sk_socket)? Likewise, given sksec->sid, why don't you change sock_rcv_skb to always use it, and eliminate the need for the isec and the sk_callback_lock there? Similarly for postroute_last's use of isec->sid. With direct labeling of the sock, it is no longer necessary to extract the isec. -- Stephen Smalley National Security Agency - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html