blob: 1b17bc73f31c1505ba9bd0bff80fd67908b8eb1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
From c8bbb0f916de54610513e376070aea531af19dd6 Mon Sep 17 00:00:00 2001
From: jooseong lee <jooseong.lee@samsung.com>
Date: Thu, 3 Nov 2016 10:55:43 +0100
Subject: [PATCH 4/4] Smack: Assign smack_known_web label for kernel thread's
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Assign smack_known_web label for kernel thread's socket in the sk_alloc_security hook
Creating struct sock by sk_alloc function in various kernel subsystems
like bluetooth dosen't call smack_socket_post_create(). In such case,
received sock label is the floor('_') label and makes access deny.
Refers-to: https://review.tizen.org/gerrit/#/c/80717/4
Change-Id: I2e5c9359bfede84a988fd4d4d74cdb9dfdfc52d8
Signed-off-by: jooseong lee <jooseong.lee@samsung.com>
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
---
security/smack/smack_lsm.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index e45f0a3..a3f3ccc 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -2107,8 +2107,16 @@ static int smack_sk_alloc_security(struct sock *sk, int family, gfp_t gfp_flags)
if (ssp == NULL)
return -ENOMEM;
- ssp->smk_in = skp;
- ssp->smk_out = skp;
+ /*
+ * Sockets created by kernel threads receive web label.
+ */
+ if (unlikely(current->flags & PF_KTHREAD)) {
+ ssp->smk_in = &smack_known_web;
+ ssp->smk_out = &smack_known_web;
+ } else {
+ ssp->smk_in = skp;
+ ssp->smk_out = skp;
+ }
ssp->smk_packet = NULL;
sk->sk_security = ssp;
--
2.7.4
|