|
@@ -51,6 +51,7 @@
|
|
|
#include <linux/tty.h>
|
|
|
#include <net/icmp.h>
|
|
|
#include <net/ip.h> /* for local_port_range[] */
|
|
|
+#include <net/sock.h>
|
|
|
#include <net/tcp.h> /* struct or_callable used in sock_rcv_skb */
|
|
|
#include <net/net_namespace.h>
|
|
|
#include <net/netlabel.h>
|
|
@@ -4363,6 +4364,11 @@ static void selinux_inet_conn_established(struct sock *sk, struct sk_buff *skb)
|
|
|
selinux_skb_peerlbl_sid(skb, family, &sksec->peer_sid);
|
|
|
}
|
|
|
|
|
|
+static void selinux_skb_owned_by(struct sk_buff *skb, struct sock *sk)
|
|
|
+{
|
|
|
+ skb_set_owner_w(skb, sk);
|
|
|
+}
|
|
|
+
|
|
|
static int selinux_secmark_relabel_packet(u32 sid)
|
|
|
{
|
|
|
const struct task_security_struct *__tsec;
|
|
@@ -5664,6 +5670,7 @@ static struct security_operations selinux_ops = {
|
|
|
.tun_dev_attach_queue = selinux_tun_dev_attach_queue,
|
|
|
.tun_dev_attach = selinux_tun_dev_attach,
|
|
|
.tun_dev_open = selinux_tun_dev_open,
|
|
|
+ .skb_owned_by = selinux_skb_owned_by,
|
|
|
|
|
|
#ifdef CONFIG_SECURITY_NETWORK_XFRM
|
|
|
.xfrm_policy_alloc_security = selinux_xfrm_policy_alloc,
|