|
@@ -2452,7 +2452,21 @@ static int smack_inode_setsecurity(struct inode *inode, const char *name,
|
|
|
static int smack_socket_post_create(struct socket *sock, int family,
|
|
|
int type, int protocol, int kern)
|
|
|
{
|
|
|
- if (family != PF_INET || sock->sk == NULL)
|
|
|
+ struct socket_smack *ssp;
|
|
|
+
|
|
|
+ if (sock->sk == NULL)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Sockets created by kernel threads receive web label.
|
|
|
+ */
|
|
|
+ if (unlikely(current->flags & PF_KTHREAD)) {
|
|
|
+ ssp = sock->sk->sk_security;
|
|
|
+ ssp->smk_in = &smack_known_web;
|
|
|
+ ssp->smk_out = &smack_known_web;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (family != PF_INET)
|
|
|
return 0;
|
|
|
/*
|
|
|
* Set the outbound netlbl.
|