Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull security system updates from James Morris: - incorporate new socketpair() hook into LSM and wire up the SELinux and Smack modules. From David Herrmann: "The idea is to allow SO_PEERSEC to be called on AF_UNIX sockets created via socketpair(2), and return the same information as if you emulated socketpair(2) via a temporary listener socket. Right now SO_PEERSEC will return the unlabeled credentials for a socketpair, rather than the actual credentials of the creating process." - remove the unused security_settime LSM hook (Sargun Dhillon). - remove some stack allocated arrays from the keys code (Tycho Andersen) * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: dh key: get rid of stack allocated array for zeroes dh key: get rid of stack allocated array big key: get rid of stack array allocation smack: provide socketpair callback selinux: provide socketpair callback net: hook socketpair() into LSM security: add hook for socketpair() security: remove security_settime
This commit is contained in:
@@ -4580,6 +4580,18 @@ static int selinux_socket_post_create(struct socket *sock, int family,
|
||||
return err;
|
||||
}
|
||||
|
||||
static int selinux_socket_socketpair(struct socket *socka,
|
||||
struct socket *sockb)
|
||||
{
|
||||
struct sk_security_struct *sksec_a = socka->sk->sk_security;
|
||||
struct sk_security_struct *sksec_b = sockb->sk->sk_security;
|
||||
|
||||
sksec_a->peer_sid = sksec_b->sid;
|
||||
sksec_b->peer_sid = sksec_a->sid;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Range of port numbers used to automatically bind.
|
||||
Need to determine whether we should perform a name_bind
|
||||
permission check between the socket and the port number. */
|
||||
@@ -7016,6 +7028,7 @@ static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = {
|
||||
|
||||
LSM_HOOK_INIT(socket_create, selinux_socket_create),
|
||||
LSM_HOOK_INIT(socket_post_create, selinux_socket_post_create),
|
||||
LSM_HOOK_INIT(socket_socketpair, selinux_socket_socketpair),
|
||||
LSM_HOOK_INIT(socket_bind, selinux_socket_bind),
|
||||
LSM_HOOK_INIT(socket_connect, selinux_socket_connect),
|
||||
LSM_HOOK_INIT(socket_listen, selinux_socket_listen),
|
||||
|
Reference in New Issue
Block a user