From: jason@perfinion.com (Jason Zaman)
Date: Tue, 10 Jul 2018 23:03:17 +0800
Subject: [refpolicy] [PATCH 4/5] Allow map xserver_misc_device_t for nvidia
driver
In-Reply-To: <20180710150318.49873-1-jason@perfinion.com>
References: <20180710150318.49873-1-jason@perfinion.com>
Message-ID: <20180710150318.49873-4-jason@perfinion.com>
To: refpolicy@oss.tresys.com
List-Id: refpolicy.oss.tresys.com
---
policy/modules/kernel/devices.if | 18 ++++++++++++++++++
policy/modules/services/xserver.if | 1 +
policy/modules/services/xserver.te | 1 +
policy/modules/system/init.te | 1 +
4 files changed, 21 insertions(+)
diff --git a/policy/modules/kernel/devices.if b/policy/modules/kernel/devices.if
index be1a1d4b..6bbea59e 100644
--- a/policy/modules/kernel/devices.if
+++ b/policy/modules/kernel/devices.if
@@ -5079,6 +5079,24 @@ interface(`dev_rw_xserver_misc',`
rw_chr_files_pattern($1, device_t, xserver_misc_device_t)
')
+########################################
+##
+## Map X server miscellaneous devices.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`dev_map_xserver_misc',`
+ gen_require(`
+ type xserver_misc_device_t;
+ ')
+
+ allow $1 xserver_misc_device_t:chr_file map;
+')
+
########################################
##
## Read and write to the zero device (/dev/zero).
diff --git a/policy/modules/services/xserver.if b/policy/modules/services/xserver.if
index c1dbf0bf..1b25ff5c 100644
--- a/policy/modules/services/xserver.if
+++ b/policy/modules/services/xserver.if
@@ -82,6 +82,7 @@ interface(`xserver_restricted_role',`
allow $2 xserver_tmp_t:file { getattr read };
dev_rw_xserver_misc($2)
+ dev_map_xserver_misc($2)
dev_rw_power_management($2)
dev_read_input($2)
dev_read_misc($2)
diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te
index 3b39bdd9..83e00c01 100644
--- a/policy/modules/services/xserver.te
+++ b/policy/modules/services/xserver.te
@@ -749,6 +749,7 @@ dev_read_raw_memory(xserver_t)
dev_wx_raw_memory(xserver_t)
# for other device nodes such as the NVidia binary-only driver
dev_rw_xserver_misc(xserver_t)
+dev_map_xserver_misc(xserver_t)
# read events - the synaptics touchpad driver reads raw events
dev_rw_input_dev(xserver_t)
dev_rwx_zero(xserver_t)
diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
index a72b31d0..f9320285 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -635,6 +635,7 @@ dev_delete_generic_symlinks(initrc_t)
dev_getattr_all_blk_files(initrc_t)
dev_getattr_all_chr_files(initrc_t)
dev_rw_xserver_misc(initrc_t)
+dev_map_xserver_misc(initrc_t)
domain_kill_all_domains(initrc_t)
domain_signal_all_domains(initrc_t)
--
2.16.4