[PATCH 08/14] NFS: Add security_label text mount option and handling code to NFS

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David P. Quigley
Date: Monday, September 29, 2008 - 10:06 am

This patch adds two new text options to to the NFS mount options to specify
security labeling. It also sends certain LSM related mount options into the
module for handling.

Signed-off-by: Matthew N. Dodd <Matthew.Dodd@sparta.com>
Signed-off-by: David P. Quigley <dpquigl@tycho.nsa.gov>
---
 fs/nfs/super.c             |    9 +++++++++
 include/linux/nfs4_mount.h |    6 +++++-
 security/selinux/hooks.c   |    2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 9abcd2b..256ce27 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -75,6 +75,7 @@ enum {
 	Opt_acl, Opt_noacl,
 	Opt_rdirplus, Opt_nordirplus,
 	Opt_sharecache, Opt_nosharecache,
+	Opt_security_label, Opt_nosecurity_label,
 
 	/* Mount options that take integer arguments */
 	Opt_port,
@@ -128,6 +129,8 @@ static match_table_t nfs_mount_option_tokens = {
 	{ Opt_nordirplus, "nordirplus" },
 	{ Opt_sharecache, "sharecache" },
 	{ Opt_nosharecache, "nosharecache" },
+	{ Opt_security_label, "security_label" },
+	{ Opt_nosecurity_label, "nosecurity_label" },
 
 	{ Opt_port, "port=%u" },
 	{ Opt_rsize, "rsize=%u" },
@@ -1033,6 +1036,12 @@ static int nfs_parse_mount_options(char *raw,
 		case Opt_nosharecache:
 			mnt->flags |= NFS_MOUNT_UNSHARED;
 			break;
+		case Opt_nosecurity_label:
+			mnt->flags &= ~NFS4_MOUNT_SECURITY_LABEL;
+			break;
+		case Opt_security_label:
+			mnt->flags |= NFS4_MOUNT_SECURITY_LABEL;
+			break;
 
 		/*
 		 * options that take numeric values
diff --git a/include/linux/nfs4_mount.h b/include/linux/nfs4_mount.h
index a0dcf66..e65067b 100644
--- a/include/linux/nfs4_mount.h
+++ b/include/linux/nfs4_mount.h
@@ -17,6 +17,7 @@
  * but here they are anyway.
  */
 #define NFS4_MOUNT_VERSION	1
+#define NFS4_MAX_CONTEXT_LEN	4096
 
 struct nfs_string {
 	unsigned int len;
@@ -53,6 +54,8 @@ struct nfs4_mount_data {
 	/* Pseudo-flavours to use for authentication. See RFC2623 */
 	int auth_flavourlen;			/* 1 */
 	int __user *auth_flavours;		/* 1 */
+
+	char context[NFS4_MAX_CONTEXT_LEN + 1];  /* 2 */
 };
 
 /* bits in the flags field */
@@ -66,6 +69,7 @@ struct nfs4_mount_data {
 #define NFS4_MOUNT_NOAC		0x0020	/* 1 */
 #define NFS4_MOUNT_STRICTLOCK	0x1000	/* 1 */
 #define NFS4_MOUNT_UNSHARED	0x8000	/* 1 */
-#define NFS4_MOUNT_FLAGMASK	0x9033
+#define NFS4_MOUNT_SECURITY_LABEL 0x10000 /* 2 */
+#define NFS4_MOUNT_FLAGMASK	0x19033
 
 #endif
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 78e79d3..6919766 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -612,7 +612,7 @@ static int selinux_set_mnt_opts(struct super_block *sb,
 	for (i = 0; i < num_opts; i++) {
 		u32 sid;
 		if (flags[i] == NATIVE_LABELS_MNT) {
-			sbsec->flags | = NATIVE_LABELS_MNT;
+			sbsec->flags |= NATIVE_LABELS_MNT;
 			continue;
 		}
 		rc = security_context_to_sid(mount_options[i],
-- 
1.5.5.1

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC v3] Security Label Support for NFSv4, David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 01/14] VFS: Factor out part of vfs_setxattr so it c ..., David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 05/14] SELinux: Add new labeling type native labels, David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 06/14] KConfig: Add KConfig entries for Labeled NFS, David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 08/14] NFS: Add security_label text mount option an ..., David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 10/14] NFSv4: Introduce new label structure, David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 11/14] NFS/RPC: Add the auth_seclabel security flav ..., David P. Quigley, (Mon Sep 29, 10:06 am)
[PATCH 13/14] NFS: Extend NFS xattr handlers to accept the ..., David P. Quigley, (Mon Sep 29, 10:06 am)
Re: [PATCH 01/14] VFS: Factor out part of vfs_setxattr so ..., Serge E. Hallyn, (Tue Sep 30, 12:51 pm)
Re: [RFC v3] Security Label Support for NFSv4, James Morris, (Mon Oct 13, 4:31 pm)
Re: [Labeled-nfs] [RFC v3] Security Label Support for NFSv4, Matthew N. Dodd, (Mon Oct 13, 7:15 pm)
Re: [Labeled-nfs] [RFC v3] Security Label Support for NFSv4, Trond Myklebust, (Tue Oct 14, 6:20 am)
Re: [Labeled-nfs] [RFC v3] Security Label Support for NFSv4, David P. Quigley, (Tue Oct 14, 7:28 am)