fine-grained policy for access to /proc/zoneinfo
Change-Id: Ica9a16311075f5cc3744d0e0833ed876e201029f
diff --git a/dumpstate.te b/dumpstate.te
index 08dcb4d..4bb12c3 100644
--- a/dumpstate.te
+++ b/dumpstate.te
@@ -144,3 +144,4 @@
allow dumpstate atrace_exec:file rx_file_perms;
allow dumpstate proc_interrupts:file r_file_perms;
+allow dumpstate proc_zoneinfo:file r_file_perms;
diff --git a/file.te b/file.te
index 628c237..02112ef 100644
--- a/file.te
+++ b/file.te
@@ -22,6 +22,7 @@
type proc_timer, fs_type;
type proc_uid_cputime_showstat, fs_type;
type proc_uid_cputime_removeuid, fs_type;
+type proc_zoneinfo, fs_type;
type selinuxfs, fs_type, mlstrustedobject;
type cgroup, fs_type, mlstrustedobject;
type sysfs, fs_type, sysfs_type, mlstrustedobject;
diff --git a/genfs_contexts b/genfs_contexts
index 57b967c..bb2fea9 100644
--- a/genfs_contexts
+++ b/genfs_contexts
@@ -31,6 +31,7 @@
genfscon proc /timer_stats u:object_r:proc_timer:s0
genfscon proc /uid_cputime/show_uid_stat u:object_r:proc_uid_cputime_showstat:s0
genfscon proc /uid_cputime/remove_uid_range u:object_r:proc_uid_cputime_removeuid:s0
+genfscon proc /zoneinfo u:object_r:proc_zoneinfo:s0
# selinuxfs booleans can be individually labeled.
genfscon selinuxfs / u:object_r:selinuxfs:s0
diff --git a/lmkd.te b/lmkd.te
index 863fe07..ee731c5 100644
--- a/lmkd.te
+++ b/lmkd.te
@@ -32,6 +32,8 @@
# Set self to SCHED_FIFO
allow lmkd self:capability sys_nice;
+allow lmkd proc_zoneinfo:file r_file_perms;
+
### neverallow rules
# never honor LD_PRELOAD
diff --git a/shell.te b/shell.te
index afa4c91..b7b4e03 100644
--- a/shell.te
+++ b/shell.te
@@ -93,6 +93,7 @@
allow shell proc_meminfo:file r_file_perms;
allow shell proc_stat:file r_file_perms;
allow shell proc_timer:file r_file_perms;
+allow shell proc_zoneinfo:file r_file_perms;
r_dir_file(shell, cgroup)
allow shell domain:dir { search open read getattr };
allow shell domain:{ file lnk_file } { open read getattr };