linux-renesas: Applies Smack patch for bluetooth 71/9371/3
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 12 May 2017 14:14:07 +0000 (16:14 +0200)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 12 May 2017 21:53:54 +0000 (21:53 +0000)
This patch allows kernel sockets to be used by applications.

Bug-AGL: SPEC-554

Change-Id: Ib3562cb68334500b375b5dd341ead314c438f5e6
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/9371
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-boot-test: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/files/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch [new file with mode: 0644]
meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.9.bbappend [new file with mode: 0644]
meta-agl-bsp/meta-renesas/recipes-kernel/linux/linux-renesas_%.bbappend [changed mode: 0755->0644]

diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/files/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/files/0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch
new file mode 100644 (file)
index 0000000..a1eeac3
--- /dev/null
@@ -0,0 +1,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 cf8a93f..21651bc 100644
+--- a/security/smack/smack_lsm.c
++++ b/security/smack/smack_lsm.c
+@@ -2321,8 +2321,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
+
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.9.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-kernel/linux/linux-renesas_4.9.bbappend
new file mode 100644 (file)
index 0000000..8691532
--- /dev/null
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+#-------------------------------------------------------------------------
+# smack patches for handling bluetooth
+
+SRC_URI_append_smack = "\
+       file://0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch \
+"