diff options
Diffstat (limited to 'security/selinux/hooks.c')
| -rw-r--r-- | security/selinux/hooks.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 4cafe6a19167..02ebd1585eaf 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -4569,6 +4569,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. */ @@ -6999,6 +7011,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),  | 
