From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D3429138334 for ; Mon, 25 Jun 2018 05:33:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 53580E091A; Mon, 25 Jun 2018 05:33:43 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EEA91E091A for ; Mon, 25 Jun 2018 05:33:41 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 089B1335CB4 for ; Mon, 25 Jun 2018 05:33:40 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D6D34349 for ; Mon, 25 Jun 2018 05:33:37 +0000 (UTC) From: "Jason Zaman" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jason Zaman" Message-ID: <1529904719.9e2eeb8b7182b0c91a54f57cf6a593ba591a84ec.perfinion@gentoo> Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: policy/modules/services/ X-VCS-Repository: proj/hardened-refpolicy X-VCS-Files: policy/modules/services/xserver.fc policy/modules/services/xserver.if policy/modules/services/xserver.te X-VCS-Directories: policy/modules/services/ X-VCS-Committer: perfinion X-VCS-Committer-Name: Jason Zaman X-VCS-Revision: 9e2eeb8b7182b0c91a54f57cf6a593ba591a84ec X-VCS-Branch: master Date: Mon, 25 Jun 2018 05:33:37 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: d3e4b615-6657-4190-91d0-bc529187de91 X-Archives-Hash: 59eea7b760106a95af07fd486b7ea390 commit: 9e2eeb8b7182b0c91a54f57cf6a593ba591a84ec Author: Jason Zaman perfinion com> AuthorDate: Sun Jun 24 09:56:10 2018 +0000 Commit: Jason Zaman gentoo org> CommitDate: Mon Jun 25 05:31:59 2018 +0000 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=9e2eeb8b xserver: Add mesa_shader_cache for GLSL in ~/.cache/mesa_shader_cache/ policy/modules/services/xserver.fc | 1 + policy/modules/services/xserver.if | 37 ++++++++++++++++++++++++++++++++++--- policy/modules/services/xserver.te | 9 +++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/policy/modules/services/xserver.fc b/policy/modules/services/xserver.fc index 969214f2..171a8df1 100644 --- a/policy/modules/services/xserver.fc +++ b/policy/modules/services/xserver.fc @@ -1,6 +1,7 @@ # # HOME_DIR # +HOME_DIR/\.cache/mesa_shader_cache(/.*)? gen_context(system_u:object_r:mesa_shader_cache_t,s0) HOME_DIR/\.dmrc -- gen_context(system_u:object_r:dmrc_home_t,s0) HOME_DIR/\.fonts\.conf -- gen_context(system_u:object_r:user_fonts_config_t,s0) HOME_DIR/\.fonts(/.*)? gen_context(system_u:object_r:user_fonts_t,s0) diff --git a/policy/modules/services/xserver.if b/policy/modules/services/xserver.if index 86391675..c1c07b32 100644 --- a/policy/modules/services/xserver.if +++ b/policy/modules/services/xserver.if @@ -138,6 +138,7 @@ interface(`xserver_role',` gen_require(` type iceauth_home_t, xserver_t, xserver_tmpfs_t, xauth_home_t; type user_fonts_t, user_fonts_cache_t, user_fonts_config_t; + type mesa_shader_cache_t; ') xserver_restricted_role($1, $2) @@ -167,6 +168,12 @@ interface(`xserver_role',` relabel_dirs_pattern($2, user_fonts_config_t, user_fonts_config_t) relabel_files_pattern($2, user_fonts_config_t, user_fonts_config_t) + manage_dirs_pattern($2, mesa_shader_cache_t, mesa_shader_cache_t) + manage_files_pattern($2, mesa_shader_cache_t, mesa_shader_cache_t) + allow $2 mesa_shader_cache_t:file map; + relabel_dirs_pattern($2, mesa_shader_cache_t, mesa_shader_cache_t) + relabel_files_pattern($2, mesa_shader_cache_t, mesa_shader_cache_t) + xserver_user_home_dir_filetrans_user_iceauth($2, ".ICEauthority") xserver_read_xkb_libs($2) @@ -178,17 +185,17 @@ interface(`xserver_role',` xdg_relabel_all_config($2) xdg_manage_all_data($2) xdg_relabel_all_data($2) - + xdg_generic_user_home_dir_filetrans_cache($2, dir, ".cache") xdg_generic_user_home_dir_filetrans_config($2, dir, ".config") xdg_generic_user_home_dir_filetrans_data($2, dir, ".local") - + xdg_generic_user_home_dir_filetrans_documents($2, dir, "Documents") xdg_generic_user_home_dir_filetrans_downloads($2, dir, "Downloads") xdg_generic_user_home_dir_filetrans_music($2, dir, "Music") xdg_generic_user_home_dir_filetrans_pictures($2, dir, "Pictures") xdg_generic_user_home_dir_filetrans_videos($2, dir, "Videos") - + xdg_manage_documents($2) xdg_relabel_documents($2) xdg_manage_downloads($2) @@ -199,6 +206,8 @@ interface(`xserver_role',` xdg_relabel_pictures($2) xdg_manage_videos($2) xdg_relabel_videos($2) + + xdg_cache_filetrans($2, mesa_shader_cache_t, dir, "mesa_shader_cache") ') ') @@ -1619,3 +1628,25 @@ interface(`xserver_rw_xdm_keys',` allow $1 xdm_t:key { read write setattr }; ') + +######################################## +## +## Read and write the mesa shader cache. +## +## +## +## Domain allowed access. +## +## +# +interface(`xserver_rw_mesa_shader_cache',` + gen_require(` + type mesa_shader_cache_t; + ') + + rw_dirs_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t) + rw_files_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t) + allow $1 mesa_shader_cache_t:file map; + + xdg_search_cache_dirs($1) +') diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te index c4c786e4..3d71e65a 100644 --- a/policy/modules/services/xserver.te +++ b/policy/modules/services/xserver.te @@ -229,6 +229,9 @@ userdom_user_home_content(xsession_log_t) type xserver_log_t; logging_log_file(xserver_log_t) +type mesa_shader_cache_t; +xdg_cache_content(mesa_shader_cache_t) + ifdef(`enable_mcs',` init_ranged_domain(xdm_t, xdm_exec_t, s0 - mcs_systemhigh) init_ranged_daemon_domain(xdm_t, xdm_exec_t, s0 - mcs_systemhigh) @@ -693,6 +696,12 @@ manage_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t) manage_lnk_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t) files_search_var_lib(xserver_t) +manage_dirs_pattern(xserver_t, mesa_shader_cache_t, mesa_shader_cache_t) +manage_files_pattern(xserver_t, mesa_shader_cache_t, mesa_shader_cache_t) +allow xserver_t mesa_shader_cache_t:file map; +xdg_cache_filetrans(xserver_t, mesa_shader_cache_t, dir, "mesa_shader_cache") +xdg_generic_user_home_dir_filetrans_cache(xserver_t, dir, ".cache") + domtrans_pattern(xserver_t, xauth_exec_t, xauth_t) allow xserver_t xauth_home_t:file read_file_perms;