diff --git a/.gitignore b/.gitignore
index 8632839..8fea9fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -223,3 +223,4 @@ serefpolicy*
/serefpolicy-3.9.0.tgz
/serefpolicy-3.9.1.tgz
/serefpolicy-3.9.2.tgz
+/serefpolicy-3.9.3.tgz
diff --git a/policy-F14.patch b/policy-F14.patch
index d722157..470095b 100644
--- a/policy-F14.patch
+++ b/policy-F14.patch
@@ -206,110 +206,6 @@ index af90ef2..fbd2c40 100644
(( h1 dom h2 ) or ( t1 == mcskillall ));
#
-diff --git a/policy/modules/admin/alsa.fc b/policy/modules/admin/alsa.fc
-index 30a0ac7..f5fc753 100644
---- a/policy/modules/admin/alsa.fc
-+++ b/policy/modules/admin/alsa.fc
-@@ -1,3 +1,5 @@
-+HOME_DIR/\.asoundrc -- gen_context(system_u:object_r:alsa_home_t,s0)
-+
- /bin/alsaunmute -- gen_context(system_u:object_r:alsa_exec_t,s0)
-
- /etc/alsa/asound\.state -- gen_context(system_u:object_r:alsa_etc_rw_t,s0)
-diff --git a/policy/modules/admin/alsa.if b/policy/modules/admin/alsa.if
-index fe09bea..090b5c9 100644
---- a/policy/modules/admin/alsa.if
-+++ b/policy/modules/admin/alsa.if
-@@ -16,6 +16,7 @@ interface(`alsa_domtrans',`
- ')
-
- domtrans_pattern($1, alsa_exec_t, alsa_t)
-+ corecmd_search_bin($1)
- ')
-
- ########################################
-@@ -33,7 +34,7 @@ interface(`alsa_rw_semaphores',`
- type alsa_t;
- ')
-
-- allow $1 alsa_t:sem { unix_read unix_write associate read write };
-+ allow $1 alsa_t:sem rw_sem_perms;
- ')
-
- ########################################
-@@ -51,7 +52,7 @@ interface(`alsa_rw_shared_mem',`
- type alsa_t;
- ')
-
-- allow $1 alsa_t:shm { unix_read unix_write create_shm_perms };
-+ allow $1 alsa_t:shm rw_shm_perms;
- ')
-
- ########################################
-@@ -72,6 +73,7 @@ interface(`alsa_read_rw_config',`
- allow $1 alsa_etc_rw_t:dir list_dir_perms;
- read_files_pattern($1, alsa_etc_rw_t, alsa_etc_rw_t)
- read_lnk_files_pattern($1, alsa_etc_rw_t, alsa_etc_rw_t)
-+ files_search_etc($1)
- ')
-
- ########################################
-@@ -92,6 +94,7 @@ interface(`alsa_manage_rw_config',`
- allow $1 alsa_etc_rw_t:dir list_dir_perms;
- manage_files_pattern($1, alsa_etc_rw_t, alsa_etc_rw_t)
- read_lnk_files_pattern($1, alsa_etc_rw_t, alsa_etc_rw_t)
-+ files_search_etc($1)
- ')
-
- ########################################
-@@ -110,4 +113,24 @@ interface(`alsa_read_lib',`
- ')
-
- read_files_pattern($1, alsa_var_lib_t, alsa_var_lib_t)
-+ files_search_var_lib($1)
-+')
-+
-+########################################
-+##
-+## Read alsa home files.
-+##
-+##
-+##
-+## Domain allowed access.
-+##
-+##
-+#
-+interface(`alsa_read_home_files',`
-+ gen_require(`
-+ type alsa_home_t;
-+ ')
-+
-+ allow $1 alsa_home_t:file read_file_perms;
-+ userdom_search_user_home_dirs($1)
- ')
-diff --git a/policy/modules/admin/alsa.te b/policy/modules/admin/alsa.te
-index 04f9d96..ed1c3dc 100644
---- a/policy/modules/admin/alsa.te
-+++ b/policy/modules/admin/alsa.te
-@@ -16,6 +16,9 @@ files_type(alsa_etc_rw_t)
- type alsa_var_lib_t;
- files_type(alsa_var_lib_t)
-
-+type alsa_home_t;
-+userdom_user_home_content(alsa_home_t)
-+
- ########################################
- #
- # Local policy
-@@ -28,6 +31,8 @@ allow alsa_t self:shm create_shm_perms;
- allow alsa_t self:unix_stream_socket create_stream_socket_perms;
- allow alsa_t self:unix_dgram_socket create_socket_perms;
-
-+allow alsa_t alsa_home_t:file read_file_perms;
-+
- manage_files_pattern(alsa_t, alsa_etc_rw_t, alsa_etc_rw_t)
- manage_lnk_files_pattern(alsa_t, alsa_etc_rw_t, alsa_etc_rw_t)
- files_etc_filetrans(alsa_t, alsa_etc_rw_t, file)
diff --git a/policy/modules/admin/amanda.if b/policy/modules/admin/amanda.if
index d1d035e..2cb11ea 100644
--- a/policy/modules/admin/amanda.if
@@ -1374,7 +1270,7 @@ index 95dbcf3..bdba9c5 100644
optional_policy(`
java_domtrans_unconfined(rpm_script_t)
diff --git a/policy/modules/admin/shorewall.if b/policy/modules/admin/shorewall.if
-index 0948921..992a7fc 100644
+index 0948921..b83f3db 100644
--- a/policy/modules/admin/shorewall.if
+++ b/policy/modules/admin/shorewall.if
@@ -18,6 +18,24 @@ interface(`shorewall_domtrans',`
@@ -1402,7 +1298,33 @@ index 0948921..992a7fc 100644
#######################################
##
## Read shorewall etc configuration files.
-@@ -134,9 +152,10 @@ interface(`shorewall_rw_lib_files',`
+@@ -117,6 +135,25 @@ interface(`shorewall_rw_lib_files',`
+
+ #######################################
+ ##
++## Read shorewall tmp files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`shorewall_read_tmp_files',`
++ gen_require(`
++ type shorewall_tmp_t;
++ ')
++
++ files_search_tmp($1)
++ read_files_pattern($1, shorewall_tmp_t, shorewall_tmp_t)
++')
++
++#######################################
++##
+ ## All of the rules required to administrate
+ ## an shorewall environment
+ ##
+@@ -134,9 +171,10 @@ interface(`shorewall_rw_lib_files',`
#
interface(`shorewall_admin',`
gen_require(`
@@ -1415,7 +1337,7 @@ index 0948921..992a7fc 100644
')
allow $1 shorewall_t:process { ptrace signal_perms };
-@@ -153,12 +172,12 @@ interface(`shorewall_admin',`
+@@ -153,12 +191,12 @@ interface(`shorewall_admin',`
files_search_locks($1)
admin_pattern($1, shorewall_lock_t)
@@ -1723,18 +1645,32 @@ index aecbf1c..0b5e634 100644
optional_policy(`
diff --git a/policy/modules/admin/usermanage.te b/policy/modules/admin/usermanage.te
-index c35d801..3045a19 100644
+index c35d801..961424f 100644
--- a/policy/modules/admin/usermanage.te
+++ b/policy/modules/admin/usermanage.te
-@@ -295,6 +295,7 @@ selinux_compute_user_contexts(passwd_t)
+@@ -90,9 +90,7 @@ fs_search_auto_mountpoints(chfn_t)
+ # for SSP
+ dev_read_urand(chfn_t)
+
+-auth_domtrans_chk_passwd(chfn_t)
+-auth_dontaudit_read_shadow(chfn_t)
+-auth_use_nsswitch(chfn_t)
++auth_use_pam(chfn_t)
+
+ # allow checking if a shell is executable
+ corecmd_check_exec_shell(chfn_t)
+@@ -295,15 +293,18 @@ selinux_compute_user_contexts(passwd_t)
term_use_all_ttys(passwd_t)
term_use_all_ptys(passwd_t)
+term_use_generic_ptys(passwd_t)
- auth_domtrans_chk_passwd(passwd_t)
+-auth_domtrans_chk_passwd(passwd_t)
auth_manage_shadow(passwd_t)
-@@ -304,6 +305,9 @@ auth_use_nsswitch(passwd_t)
+ auth_relabel_shadow(passwd_t)
+ auth_etc_filetrans_shadow(passwd_t)
+-auth_use_nsswitch(passwd_t)
++auth_use_pam(passwd_t)
# allow checking if a shell is executable
corecmd_check_exec_shell(passwd_t)
@@ -1744,7 +1680,7 @@ index c35d801..3045a19 100644
domain_use_interactive_fds(passwd_t)
-@@ -334,6 +338,7 @@ userdom_read_user_tmp_files(passwd_t)
+@@ -334,6 +335,7 @@ userdom_read_user_tmp_files(passwd_t)
# user generally runs this from their home directory, so do not audit a search
# on user home dir
userdom_dontaudit_search_user_home_content(passwd_t)
@@ -1752,7 +1688,7 @@ index c35d801..3045a19 100644
optional_policy(`
nscd_domtrans(passwd_t)
-@@ -428,7 +433,7 @@ optional_policy(`
+@@ -428,7 +430,7 @@ optional_policy(`
# Useradd local policy
#
@@ -1761,7 +1697,7 @@ index c35d801..3045a19 100644
dontaudit useradd_t self:capability sys_tty_config;
allow useradd_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow useradd_t self:process setfscreate;
-@@ -500,12 +505,8 @@ seutil_domtrans_setfiles(useradd_t)
+@@ -500,12 +502,8 @@ seutil_domtrans_setfiles(useradd_t)
userdom_use_unpriv_users_fds(useradd_t)
# Add/remove user home directories
@@ -2361,157 +2297,88 @@ index 00a19e3..46db5ff 100644
+/usr/libexec/gnome-system-monitor-mechanism -- gen_context(system_u:object_r:gnomesystemmm_exec_t,s0)
+
diff --git a/policy/modules/apps/gnome.if b/policy/modules/apps/gnome.if
-index f5afe78..ffd9870 100644
+index f5afe78..db1a0d0 100644
--- a/policy/modules/apps/gnome.if
+++ b/policy/modules/apps/gnome.if
-@@ -37,8 +37,26 @@ interface(`gnome_role',`
+@@ -37,8 +37,7 @@ interface(`gnome_role',`
########################################
##
-## Execute gconf programs in
-## in the caller domain.
+## gconf connection template.
-+##
-+##
-+##
-+## The type of the user domain.
-+##
-+##
-+#
-+interface(`gnome_stream_connect_gconf',`
-+ gen_require(`
-+ type gconfd_t, gconf_tmp_t;
-+ ')
-+
-+ read_files_pattern($1, gconf_tmp_t, gconf_tmp_t)
-+ allow $1 gconfd_t:unix_stream_socket connectto;
-+')
-+
-+########################################
-+##
-+## Run gconfd in gconfd domain.
##
##
##
-@@ -46,75 +64,124 @@ interface(`gnome_role',`
+@@ -46,37 +45,36 @@ interface(`gnome_role',`
##
##
#
-interface(`gnome_exec_gconf',`
-+interface(`gnome_domtrans_gconfd',`
++interface(`gnome_stream_connect_gconf',`
gen_require(`
- type gconfd_exec_t;
-+ type gconfd_t, gconfd_exec_t;
++ type gconfd_t, gconf_tmp_t;
')
- can_exec($1, gconfd_exec_t)
-+ domtrans_pattern($1, gconfd_exec_t, gconfd_t)
-+')
-+
-+########################################
-+##
-+## Dontaudit search gnome homedir content (.config)
-+##
-+##
-+##
-+## The type of the user domain.
-+##
-+##
-+#
-+interface(`gnome_dontaudit_search_config',`
-+ gen_require(`
-+ attribute gnome_home_type;
-+ ')
-+
-+ dontaudit $1 gnome_home_type:dir search_dir_perms;
++ read_files_pattern($1, gconf_tmp_t, gconf_tmp_t)
++ allow $1 gconfd_t:unix_stream_socket connectto;
')
########################################
##
-## Read gconf config files.
-+## manage gnome homedir content (.config)
++## Run gconfd in gconfd domain.
##
- ##
- ##
-+## The type of the user domain.
-+##
-+##
-+#
-+interface(`gnome_manage_config',`
-+ gen_require(`
-+ attribute gnome_home_type;
-+ ')
-+
-+ allow $1 gnome_home_type:dir manage_dir_perms;
-+ allow $1 gnome_home_type:file manage_file_perms;
-+ allow $1 gnome_home_type:lnk_file manage_lnk_file_perms;
-+ userdom_search_user_home_dirs($1)
-+')
-+
-+########################################
-+##
-+## Send general signals to all gconf domains.
-+##
+-##
+##
-+##
+ ##
## Domain allowed access.
##
##
#
-template(`gnome_read_gconf_config',`
-+interface(`gnome_signal_all',`
++interface(`gnome_domtrans_gconfd',`
gen_require(`
- type gconf_etc_t;
-+ attribute gnomedomain;
++ type gconfd_t, gconfd_exec_t;
')
- allow $1 gconf_etc_t:dir list_dir_perms;
- read_files_pattern($1, gconf_etc_t, gconf_etc_t)
- files_search_etc($1)
-+ allow $1 gnomedomain:process signal;
++ domtrans_pattern($1, gconfd_exec_t, gconfd_t)
')
-#######################################
+########################################
##
-## Create, read, write, and delete gconf config files.
-+## Create objects in a Gnome cache home directory
-+## with an automatic type transition to
-+## a specified private type.
++## Dontaudit search gnome homedir content (.config)
##
##
##
- ## Domain allowed access.
+@@ -84,37 +82,38 @@ template(`gnome_read_gconf_config',`
##
##
-+##
-+##
-+## The type of the object to create.
-+##
-+##
-+##
-+##
-+## The class of the object to be created.
-+##
-+##
#
-interface(`gnome_manage_gconf_config',`
-+interface(`gnome_cache_filetrans',`
++interface(`gnome_dontaudit_search_config',`
gen_require(`
- type gconf_etc_t;
-+ type cache_home_t;
++ attribute gnome_home_type;
')
- manage_files_pattern($1, gconf_etc_t, gconf_etc_t)
- files_search_etc($1)
-+ filetrans_pattern($1, cache_home_t, $2, $3)
-+ userdom_search_user_home_dirs($1)
++ dontaudit $1 gnome_home_type:dir search_dir_perms;
')
########################################
##
-## gconf connection template.
-+## Read generic cache home files (.cache)
++## manage gnome homedir content (.config)
##
-##
+##
@@ -2521,37 +2388,107 @@ index f5afe78..ffd9870 100644
##
#
-interface(`gnome_stream_connect_gconf',`
-+interface(`gnome_read_generic_cache_files',`
++interface(`gnome_manage_config',`
gen_require(`
- type gconfd_t, gconf_tmp_t;
-+ type cache_home_t;
++ attribute gnome_home_type;
')
- read_files_pattern($1, gconf_tmp_t, gconf_tmp_t)
- allow $1 gconfd_t:unix_stream_socket connectto;
-+ read_files_pattern($1, cache_home_t, cache_home_t)
++ allow $1 gnome_home_type:dir manage_dir_perms;
++ allow $1 gnome_home_type:file manage_file_perms;
++ allow $1 gnome_home_type:lnk_file manage_lnk_file_perms;
+ userdom_search_user_home_dirs($1)
')
########################################
##
-## Run gconfd in gconfd domain.
-+## Set attributes of cache home dir (.cache)
++## Send general signals to all gconf domains.
##
##
##
-@@ -122,12 +189,71 @@ interface(`gnome_stream_connect_gconf',`
+@@ -122,12 +121,139 @@ interface(`gnome_stream_connect_gconf',`
##
##
#
-interface(`gnome_domtrans_gconfd',`
-+interface(`gnome_setattr_cache_home_dir',`
++interface(`gnome_signal_all',`
gen_require(`
- type gconfd_t, gconfd_exec_t;
-+ type cache_home_t;
++ attribute gnomedomain;
')
- domtrans_pattern($1, gconfd_exec_t, gconfd_t)
++ allow $1 gnomedomain:process signal;
++')
++
++########################################
++##
++## Create objects in a Gnome cache home directory
++## with an automatic type transition to
++## a specified private type.
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## The type of the object to create.
++##
++##
++##
++##
++## The class of the object to be created.
++##
++##
++#
++interface(`gnome_cache_filetrans',`
++ gen_require(`
++ type cache_home_t;
++ ')
++
++ filetrans_pattern($1, cache_home_t, $2, $3)
++ userdom_search_user_home_dirs($1)
++')
++
++########################################
++##
++## Read generic cache home files (.cache)
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`gnome_read_generic_cache_files',`
++ gen_require(`
++ type cache_home_t;
++ ')
++
++ read_files_pattern($1, cache_home_t, cache_home_t)
++ userdom_search_user_home_dirs($1)
++')
++
++########################################
++##
++## Set attributes of cache home dir (.cache)
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`gnome_setattr_cache_home_dir',`
++ gen_require(`
++ type cache_home_t;
++ ')
++
+ setattr_dirs_pattern($1, cache_home_t, cache_home_t)
+ userdom_search_user_home_dirs($1)
+')
@@ -2598,9 +2535,9 @@ index f5afe78..ffd9870 100644
+##
+## read gnome homedir content (.config)
+##
-+##
++##
+##
-+## The type of the user domain.
++## Domain allowed access.
+##
+##
+#
@@ -2615,7 +2552,7 @@ index f5afe78..ffd9870 100644
')
########################################
-@@ -151,40 +277,288 @@ interface(`gnome_setattr_config_dirs',`
+@@ -151,40 +277,306 @@ interface(`gnome_setattr_config_dirs',`
########################################
##
@@ -2623,13 +2560,12 @@ index f5afe78..ffd9870 100644
+## Create objects in a Gnome gconf home directory
+## with an automatic type transition to
+## a specified private type.
- ##
--##
++##
+##
- ##
- ## Domain allowed access.
- ##
- ##
++##
++## Domain allowed access.
++##
++##
+##
+##
+## The type of the object to create.
@@ -2640,24 +2576,18 @@ index f5afe78..ffd9870 100644
+## The class of the object to be created.
+##
+##
- #
--template(`gnome_read_config',`
++#
+interface(`gnome_data_filetrans',`
- gen_require(`
-- type gnome_home_t;
++ gen_require(`
+ type data_home_t;
- ')
-
-- list_dirs_pattern($1, gnome_home_t, gnome_home_t)
-- read_files_pattern($1, gnome_home_t, gnome_home_t)
-- read_lnk_files_pattern($1, gnome_home_t, gnome_home_t)
++ ')
++
+ filetrans_pattern($1, data_home_t, $2, $3)
+ gnome_search_gconf($1)
- ')
-
- ########################################
- ##
--## manage gnome homedir content (.config)
++')
++
++########################################
++##
+## Create gconf_home_t objects in the /root directory
+##
+##
@@ -2683,9 +2613,9 @@ index f5afe78..ffd9870 100644
+##
+## read gconf config files
##
- ##
- ##
-+## The type of the user domain.
++##
++##
++## Domain allowed access.
+##
+##
+#
@@ -2724,19 +2654,15 @@ index f5afe78..ffd9870 100644
+##
+##
+##
- ## Domain allowed access.
- ##
- ##
- #
--interface(`gnome_manage_config',`
++## Domain allowed access.
++##
++##
++#
+interface(`gnome_exec_gconf',`
- gen_require(`
-- type gnome_home_t;
++ gen_require(`
+ type gconfd_exec_t;
- ')
-
-- allow $1 gnome_home_t:dir manage_dir_perms;
-- allow $1 gnome_home_t:file manage_file_perms;
++ ')
++
+ can_exec($1, gconfd_exec_t)
+')
+
@@ -2766,9 +2692,9 @@ index f5afe78..ffd9870 100644
+##
+## search gconf homedir (.local)
+##
-+##
++##
+##
-+## The type of the domain.
++## Domain allowed access.
+##
+##
+#
@@ -2778,8 +2704,8 @@ index f5afe78..ffd9870 100644
+ ')
+
+ allow $1 gconf_home_t:dir search_dir_perms;
- userdom_search_user_home_dirs($1)
- ')
++ userdom_search_user_home_dirs($1)
++')
+
+########################################
+##
@@ -2827,8 +2753,8 @@ index f5afe78..ffd9870 100644
+## Domain allowed access.
+##
+##
-+##
-+##
+ ##
+ ##
+## The type of the user domain.
+##
+##
@@ -2846,17 +2772,22 @@ index f5afe78..ffd9870 100644
+##
+## list gnome homedir content (.config)
+##
-+##
++##
+##
-+## The type of the user domain.
-+##
-+##
-+#
+ ## Domain allowed access.
+ ##
+ ##
+ #
+-template(`gnome_read_config',`
+template(`gnome_list_home_config',`
-+ gen_require(`
+ gen_require(`
+- type gnome_home_t;
+ type config_home_t;
-+ ')
-+
+ ')
+
+- list_dirs_pattern($1, gnome_home_t, gnome_home_t)
+- read_files_pattern($1, gnome_home_t, gnome_home_t)
+- read_lnk_files_pattern($1, gnome_home_t, gnome_home_t)
+ allow $1 config_home_t:dir list_dir_perms;
+')
+
@@ -2864,9 +2795,9 @@ index f5afe78..ffd9870 100644
+##
+## read gnome homedir content (.config)
+##
-+##
++##
+##
-+## The type of the user domain.
++## Domain allowed access.
+##
+##
+#
@@ -2876,6 +2807,30 @@ index f5afe78..ffd9870 100644
+ ')
+
+ read_files_pattern($1, config_home_t, config_home_t)
+ ')
+
+ ########################################
+ ##
+ ## manage gnome homedir content (.config)
+ ##
+-##
++##
+ ##
+ ## Domain allowed access.
+ ##
+ ##
+ #
+-interface(`gnome_manage_config',`
++template(`gnome_manage_home_config',`
+ gen_require(`
+- type gnome_home_t;
++ type config_home_t;
+ ')
+
+- allow $1 gnome_home_t:dir manage_dir_perms;
+- allow $1 gnome_home_t:file manage_file_perms;
+- userdom_search_user_home_dirs($1)
++ manage_files_pattern($1, config_home_t, config_home_t)
+')
+
+########################################
@@ -2915,7 +2870,7 @@ index f5afe78..ffd9870 100644
+
+ allow $1 gconfdefaultsm_t:dbus send_msg;
+ allow gconfdefaultsm_t $1:dbus send_msg;
-+')
+ ')
diff --git a/policy/modules/apps/gnome.te b/policy/modules/apps/gnome.te
index 35f7486..26852d2 100644
--- a/policy/modules/apps/gnome.te
@@ -3071,10 +3026,19 @@ index e9853d4..717d163 100644
/usr/bin/gpg(2)? -- gen_context(system_u:object_r:gpg_exec_t,s0)
/usr/bin/gpg-agent -- gen_context(system_u:object_r:gpg_agent_exec_t,s0)
diff --git a/policy/modules/apps/gpg.if b/policy/modules/apps/gpg.if
-index 40e0a2a..7c48fc5 100644
+index 40e0a2a..13d939a 100644
--- a/policy/modules/apps/gpg.if
+++ b/policy/modules/apps/gpg.if
-@@ -85,6 +85,43 @@ interface(`gpg_domtrans',`
+@@ -54,6 +54,8 @@ interface(`gpg_role',`
+ manage_sock_files_pattern($2, gpg_pinentry_tmp_t, gpg_pinentry_tmp_t)
+ relabel_sock_files_pattern($2, gpg_pinentry_tmp_t, gpg_pinentry_tmp_t)
+
++ allow gpg_pinentry_t $2:fifo_file { read write };
++
+ optional_policy(`
+ gpg_pinentry_dbus_chat($2)
+ ')
+@@ -85,6 +87,43 @@ interface(`gpg_domtrans',`
domtrans_pattern($1, gpg_exec_t, gpg_t)
')
@@ -3678,7 +3642,7 @@ index 93ac529..aafece7 100644
/usr/lib64/[^/]*firefox[^/]*/firefox -- gen_context(system_u:object_r:mozilla_exec_t,s0)
+/usr/lib(64)?/xulrunner[^/]*/plugin-container -- gen_context(system_u:object_r:mozilla_plugin_exec_t,s0)
diff --git a/policy/modules/apps/mozilla.if b/policy/modules/apps/mozilla.if
-index 9a6d67d..99a3d49 100644
+index 9a6d67d..47aa143 100644
--- a/policy/modules/apps/mozilla.if
+++ b/policy/modules/apps/mozilla.if
@@ -29,6 +29,8 @@ interface(`mozilla_role',`
@@ -3712,7 +3676,7 @@ index 9a6d67d..99a3d49 100644
')
########################################
-@@ -168,6 +176,50 @@ interface(`mozilla_domtrans',`
+@@ -168,6 +176,52 @@ interface(`mozilla_domtrans',`
########################################
##
@@ -3756,6 +3720,8 @@ index 9a6d67d..99a3d49 100644
+
+ mozilla_domtrans_plugin($1)
+ role $2 types mozilla_plugin_t;
++
++ allow mozilla_plugin_t $1:process signull;
+')
+
+########################################
@@ -3764,7 +3730,7 @@ index 9a6d67d..99a3d49 100644
## mozilla over dbus.
##
diff --git a/policy/modules/apps/mozilla.te b/policy/modules/apps/mozilla.te
-index cbf4bec..b2e4e0c 100644
+index cbf4bec..58899ca 100644
--- a/policy/modules/apps/mozilla.te
+++ b/policy/modules/apps/mozilla.te
@@ -25,6 +25,7 @@ files_config_file(mozilla_conf_t)
@@ -3775,7 +3741,7 @@ index cbf4bec..b2e4e0c 100644
userdom_user_home_content(mozilla_home_t)
type mozilla_tmpfs_t;
-@@ -33,6 +34,13 @@ typealias mozilla_tmpfs_t alias { auditadm_mozilla_tmpfs_t secadm_mozilla_tmpfs_
+@@ -33,6 +34,20 @@ typealias mozilla_tmpfs_t alias { auditadm_mozilla_tmpfs_t secadm_mozilla_tmpfs_
files_tmpfs_file(mozilla_tmpfs_t)
ubac_constrained(mozilla_tmpfs_t)
@@ -3784,12 +3750,19 @@ index cbf4bec..b2e4e0c 100644
+application_domain(mozilla_plugin_t, mozilla_plugin_exec_t)
+role system_r types mozilla_plugin_t;
+
++type mozilla_plugin_tmp_t;
++files_tmp_file(mozilla_plugin_tmp_t)
++
++type mozilla_plugin_tmpfs_t;
++files_tmpfs_file(mozilla_plugin_tmpfs_t)
++ubac_constrained(mozilla_plugin_tmpfs_t)
++
+permissive mozilla_plugin_t;
+
########################################
#
# Local policy
-@@ -89,16 +97,20 @@ corenet_tcp_sendrecv_generic_node(mozilla_t)
+@@ -89,16 +104,20 @@ corenet_tcp_sendrecv_generic_node(mozilla_t)
corenet_raw_sendrecv_generic_node(mozilla_t)
corenet_tcp_sendrecv_http_port(mozilla_t)
corenet_tcp_sendrecv_http_cache_port(mozilla_t)
@@ -3810,7 +3783,7 @@ index cbf4bec..b2e4e0c 100644
corenet_sendrecv_ftp_client_packets(mozilla_t)
corenet_sendrecv_ipp_client_packets(mozilla_t)
corenet_sendrecv_generic_client_packets(mozilla_t)
-@@ -238,6 +250,7 @@ optional_policy(`
+@@ -238,6 +257,7 @@ optional_policy(`
optional_policy(`
gnome_stream_connect_gconf(mozilla_t)
gnome_manage_config(mozilla_t)
@@ -3818,7 +3791,7 @@ index cbf4bec..b2e4e0c 100644
')
optional_policy(`
-@@ -258,6 +271,11 @@ optional_policy(`
+@@ -258,6 +278,11 @@ optional_policy(`
')
optional_policy(`
@@ -3830,7 +3803,7 @@ index cbf4bec..b2e4e0c 100644
pulseaudio_exec(mozilla_t)
pulseaudio_stream_connect(mozilla_t)
pulseaudio_manage_home_files(mozilla_t)
-@@ -266,3 +284,46 @@ optional_policy(`
+@@ -266,3 +291,78 @@ optional_policy(`
optional_policy(`
thunderbird_domtrans(mozilla_t)
')
@@ -3839,7 +3812,7 @@ index cbf4bec..b2e4e0c 100644
+#
+# mozilla_plugin local policy
+#
-+allow mozilla_plugin_t self:process setsched;
++allow mozilla_plugin_t self:process { setsched signal_perms execmem };
+
+allow mozilla_plugin_t self:sem create_sem_perms;
+allow mozilla_plugin_t self:shm create_shm_perms;
@@ -3848,6 +3821,16 @@ index cbf4bec..b2e4e0c 100644
+
+read_files_pattern(mozilla_plugin_t, mozilla_home_t, mozilla_home_t)
+
++manage_dirs_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
++manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmp_t, mozilla_plugin_tmp_t)
++files_tmp_filetrans(mozilla_plugin_t, mozilla_plugin_tmp_t, { dir file })
++
++manage_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
++manage_lnk_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
++manage_fifo_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
++manage_sock_files_pattern(mozilla_plugin_t, mozilla_plugin_tmpfs_t, mozilla_plugin_tmpfs_t)
++fs_tmpfs_filetrans(mozilla_plugin_t, mozilla_plugin_tmpfs_t, { file lnk_file sock_file fifo_file })
++
+kernel_read_kernel_sysctls(mozilla_plugin_t)
+kernel_read_system_state(mozilla_plugin_t)
+kernel_request_load_module(mozilla_plugin_t)
@@ -3856,6 +3839,8 @@ index cbf4bec..b2e4e0c 100644
+corecmd_exec_shell(mozilla_plugin_t)
+
+dev_read_urand(mozilla_plugin_t)
++dev_read_video_dev(mozilla_plugin_t)
++dev_read_sysfs(mozilla_plugin_t)
+
+domain_use_interactive_fds(mozilla_plugin_t)
+domain_dontaudit_read_all_domains_state(mozilla_plugin_t)
@@ -3863,14 +3848,34 @@ index cbf4bec..b2e4e0c 100644
+files_read_config_files(mozilla_plugin_t)
+files_read_usr_files(mozilla_plugin_t)
+
++fs_getattr_tmpfs(mozilla_plugin_t)
++
+miscfiles_read_localization(mozilla_plugin_t)
++miscfiles_read_fonts(mozilla_plugin_t)
+
+term_getattr_all_ttys(mozilla_plugin_t)
+term_getattr_all_ptys(mozilla_plugin_t)
+
++userdom_rw_user_tmpfs_files(mozilla_plugin_t)
++userdom_stream_connect(mozilla_plugin_t)
++userdom_dontaudit_use_user_ptys(mozilla_plugin_t)
++
++optional_policy(`
++ dbus_read_lib_files(mozilla_plugin_t)
++')
++
++optional_policy(`
++ gnome_manage_home_config(mozilla_plugin_t)
++')
++
+optional_policy(`
+ nsplugin_domtrans(mozilla_plugin_t)
+ nsplugin_rw_exec(mozilla_plugin_t)
++ nsplugin_manage_home_files(mozilla_plugin_t)
++')
++
++optional_policy(`
++ pulseaudio_rw_home_files(mozilla_plugin_t)
+')
+
+optional_policy(`
@@ -3979,10 +3984,10 @@ index 0000000..63abc5c
+/usr/lib(64)?/mozilla/plugins-wrapped(/.*)? gen_context(system_u:object_r:nsplugin_rw_t,s0)
diff --git a/policy/modules/apps/nsplugin.if b/policy/modules/apps/nsplugin.if
new file mode 100644
-index 0000000..74c624e
+index 0000000..4dd9d05
--- /dev/null
+++ b/policy/modules/apps/nsplugin.if
-@@ -0,0 +1,391 @@
+@@ -0,0 +1,374 @@
+
+## policy for nsplugin
+
@@ -4030,21 +4035,9 @@ index 0000000..74c624e
+##
+## The per role template for the nsplugin module.
+##
-+##
-+##
-+## This template creates a derived domains which are used
-+## for nsplugin web browser.
-+##
-+##
-+## This template is invoked automatically for each user, and
-+## generally does not need to be invoked directly
-+## by policy writers.
-+##
-+##
-+##
++##
+##
-+## The prefix of the user domain (e.g., user
-+## is the prefix for user_t).
++## The role associated with the user domain.
+##
+##
+##
@@ -4052,11 +4045,6 @@ index 0000000..74c624e
+## The type of the user domain.
+##
+##
-+##
-+##
-+## The role associated with the user domain.
-+##
-+##
+#
+interface(`nsplugin_role_notrans',`
+ gen_require(`
@@ -4376,10 +4364,10 @@ index 0000000..74c624e
+')
diff --git a/policy/modules/apps/nsplugin.te b/policy/modules/apps/nsplugin.te
new file mode 100644
-index 0000000..b4f0852
+index 0000000..23890a7
--- /dev/null
+++ b/policy/modules/apps/nsplugin.te
-@@ -0,0 +1,307 @@
+@@ -0,0 +1,308 @@
+policy_module(nsplugin, 1.0.0)
+
+########################################
@@ -4511,6 +4499,7 @@ index 0000000..b4f0852
+fs_list_inotifyfs(nsplugin_t)
+
+storage_dontaudit_getattr_fixed_disk_dev(nsplugin_t)
++storage_dontaudit_getattr_removable_dev(nsplugin_t)
+
+term_dontaudit_getattr_all_ptys(nsplugin_t)
+term_dontaudit_getattr_all_ttys(nsplugin_t)
@@ -5445,10 +5434,10 @@ index 0000000..c20d303
+')
diff --git a/policy/modules/apps/sandbox.te b/policy/modules/apps/sandbox.te
new file mode 100644
-index 0000000..8d4ac56
+index 0000000..942bb30
--- /dev/null
+++ b/policy/modules/apps/sandbox.te
-@@ -0,0 +1,403 @@
+@@ -0,0 +1,400 @@
+policy_module(sandbox,1.0.0)
+dbus_stub()
+attribute sandbox_domain;
@@ -5683,7 +5672,6 @@ index 0000000..8d4ac56
+userdom_read_user_home_content_symlinks(sandbox_x_domain)
+userdom_search_user_home_content(sandbox_x_domain)
+
-+#============= sandbox_x_t ==============
+files_search_home(sandbox_x_t)
+userdom_use_user_ptys(sandbox_x_t)
+
@@ -5737,7 +5725,6 @@ index 0000000..8d4ac56
+dev_write_sound(sandbox_web_type)
+dev_read_sound(sandbox_web_type)
+
-+# Browse the web, connect to printer
+corenet_all_recvfrom_unlabeled(sandbox_web_type)
+corenet_all_recvfrom_netlabel(sandbox_web_type)
+corenet_tcp_sendrecv_all_if(sandbox_web_type)
@@ -5767,7 +5754,7 @@ index 0000000..8d4ac56
+corenet_sendrecv_ftp_client_packets(sandbox_web_type)
+corenet_sendrecv_ipp_client_packets(sandbox_web_type)
+corenet_sendrecv_generic_client_packets(sandbox_web_type)
-+# Should not need other ports
++
+corenet_dontaudit_tcp_sendrecv_generic_port(sandbox_web_type)
+corenet_dontaudit_tcp_bind_generic_port(sandbox_web_type)
+
@@ -5851,7 +5838,6 @@ index 0000000..8d4ac56
+ mozilla_dontaudit_rw_user_home_files(sandbox_xserver_t)
+ mozilla_dontaudit_rw_user_home_files(sandbox_x_domain)
+')
-+
diff --git a/policy/modules/apps/seunshare.if b/policy/modules/apps/seunshare.if
index 1dc7a85..7455c19 100644
--- a/policy/modules/apps/seunshare.if
@@ -6190,10 +6176,10 @@ index 0000000..3d12484
+')
diff --git a/policy/modules/apps/telepathy.te b/policy/modules/apps/telepathy.te
new file mode 100644
-index 0000000..7e8fd3a
+index 0000000..c7250ae
--- /dev/null
+++ b/policy/modules/apps/telepathy.te
-@@ -0,0 +1,316 @@
+@@ -0,0 +1,320 @@
+
+policy_module(telepathy, 1.0.0)
+
@@ -6249,11 +6235,13 @@ index 0000000..7e8fd3a
+files_tmp_filetrans(telepathy_msn_t, telepathy_msn_tmp_t, { dir file sock_file })
+userdom_user_tmp_filetrans(telepathy_msn_t, telepathy_msn_tmp_t, { dir file sock_file })
+userdom_dontaudit_setattr_user_tmp(telepathy_msn_t)
++can_exec(telepathy_msn_t, telepathy_msn_tmp_t)
+
+corenet_sendrecv_http_client_packets(telepathy_msn_t)
+corenet_sendrecv_msnp_client_packets(telepathy_msn_t)
+corenet_tcp_connect_http_port(telepathy_msn_t)
+corenet_tcp_connect_msnp_port(telepathy_msn_t)
++corenet_tcp_connect_sametime_port(telepathy_msn_t)
+
+corecmd_exec_bin(telepathy_msn_t)
+corecmd_exec_shell(telepathy_msn_t)
@@ -6268,6 +6256,8 @@ index 0000000..7e8fd3a
+
+auth_use_nsswitch(telepathy_msn_t)
+
++libs_exec_ldconfig(telepathy_msn_t)
++
+logging_send_syslog_msg(telepathy_msn_t)
+
+miscfiles_read_certs(telepathy_msn_t)
@@ -6318,7 +6308,7 @@ index 0000000..7e8fd3a
+dev_read_rand(telepathy_gabble_t)
+dev_read_urand(telepathy_gabble_t)
+
-+files_read_etc_files(telepathy_gabble_t)
++files_read_config_files(telepathy_gabble_t)
+files_read_usr_files(telepathy_gabble_t)
+
+miscfiles_read_certs(telepathy_gabble_t)
@@ -6661,7 +6651,7 @@ index 5872ea2..028c994 100644
/var/run/vmnat.* -s gen_context(system_u:object_r:vmware_var_run_t,s0)
/var/run/vmware.* gen_context(system_u:object_r:vmware_var_run_t,s0)
diff --git a/policy/modules/apps/vmware.te b/policy/modules/apps/vmware.te
-index 1f803bb..ab99aa0 100644
+index 1f803bb..8a97303 100644
--- a/policy/modules/apps/vmware.te
+++ b/policy/modules/apps/vmware.te
@@ -126,6 +126,7 @@ dev_getattr_all_blk_files(vmware_host_t)
@@ -6672,6 +6662,17 @@ index 1f803bb..ab99aa0 100644
domain_use_interactive_fds(vmware_host_t)
domain_dontaudit_read_all_domains_state(vmware_host_t)
+@@ -159,7 +160,10 @@ netutils_domtrans_ping(vmware_host_t)
+
+ optional_policy(`
+ seutil_sigchld_newrole(vmware_host_t)
++')
+
++optional_policy(`
++ shutdown_domtrans(vmware_host_t)
+ ')
+
+ optional_policy(`
diff --git a/policy/modules/apps/wine.fc b/policy/modules/apps/wine.fc
index 9d24449..9782698 100644
--- a/policy/modules/apps/wine.fc
@@ -6820,7 +6821,7 @@ index 82842a0..369c3b5 100644
dbus_system_bus_client($1_wm_t)
dbus_session_bus_client($1_wm_t)
diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
-index 0eb1d97..a71e2d5 100644
+index 0eb1d97..b267560 100644
--- a/policy/modules/kernel/corecommands.fc
+++ b/policy/modules/kernel/corecommands.fc
@@ -9,8 +9,11 @@
@@ -6845,7 +6846,16 @@ index 0eb1d97..a71e2d5 100644
/etc/profile.d(/.*)? gen_context(system_u:object_r:bin_t,s0)
/etc/xen/qemu-ifup -- gen_context(system_u:object_r:bin_t,s0)
/etc/xen/scripts(/.*)? gen_context(system_u:object_r:bin_t,s0)
-@@ -126,6 +132,7 @@ ifdef(`distro_gentoo',`
+@@ -109,6 +115,8 @@ ifdef(`distro_debian',`
+ /etc/mysql/debian-start -- gen_context(system_u:object_r:bin_t,s0)
+ ')
+
++/etc/vmware-tools(/.*)? gen_context(system_u:object_r:bin_t,s0)
++
+ #
+ # /lib
+ #
+@@ -126,6 +134,7 @@ ifdef(`distro_gentoo',`
/lib/rcscripts/net\.modules\.d/helpers\.d/dhclient-.* -- gen_context(system_u:object_r:bin_t,s0)
/lib/rcscripts/net\.modules\.d/helpers\.d/udhcpc-.* -- gen_context(system_u:object_r:bin_t,s0)
')
@@ -6853,7 +6863,7 @@ index 0eb1d97..a71e2d5 100644
#
# /sbin
-@@ -145,6 +152,10 @@ ifdef(`distro_gentoo',`
+@@ -145,6 +154,10 @@ ifdef(`distro_gentoo',`
/opt/(.*/)?sbin(/.*)? gen_context(system_u:object_r:bin_t,s0)
@@ -6864,7 +6874,7 @@ index 0eb1d97..a71e2d5 100644
ifdef(`distro_gentoo',`
/opt/RealPlayer/realplay(\.bin)? gen_context(system_u:object_r:bin_t,s0)
/opt/RealPlayer/postint(/.*)? gen_context(system_u:object_r:bin_t,s0)
-@@ -169,6 +180,7 @@ ifdef(`distro_gentoo',`
+@@ -169,6 +182,7 @@ ifdef(`distro_gentoo',`
/usr/lib/fence(/.*)? gen_context(system_u:object_r:bin_t,s0)
/usr/lib/pgsql/test/regress/.*\.sh -- gen_context(system_u:object_r:bin_t,s0)
/usr/lib/qt.*/bin(/.*)? gen_context(system_u:object_r:bin_t,s0)
@@ -6872,7 +6882,7 @@ index 0eb1d97..a71e2d5 100644
/usr/lib(64)?/[^/]*firefox[^/]*/firefox -- gen_context(system_u:object_r:bin_t,s0)
/usr/lib(64)?/apt/methods.+ -- gen_context(system_u:object_r:bin_t,s0)
/usr/lib(64)?/ConsoleKit/scripts(/.*)? gen_context(system_u:object_r:bin_t,s0)
-@@ -220,6 +232,7 @@ ifdef(`distro_gentoo',`
+@@ -220,6 +234,7 @@ ifdef(`distro_gentoo',`
/usr/share/apr-0/build/[^/]+\.sh -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/apr-0/build/libtool -- gen_context(system_u:object_r:bin_t,s0)
@@ -6880,7 +6890,7 @@ index 0eb1d97..a71e2d5 100644
/usr/share/debconf/.+ -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/denyhosts/scripts(/.*)? gen_context(system_u:object_r:bin_t,s0)
/usr/share/denyhosts/plugins(/.*)? gen_context(system_u:object_r:bin_t,s0)
-@@ -228,6 +241,8 @@ ifdef(`distro_gentoo',`
+@@ -228,6 +243,8 @@ ifdef(`distro_gentoo',`
/usr/share/cluster/svclib_nfslock -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/e16/misc(/.*)? gen_context(system_u:object_r:bin_t,s0)
/usr/share/gedit-2/plugins/externaltools/tools(/.*)? gen_context(system_u:object_r:bin_t,s0)
@@ -6889,7 +6899,7 @@ index 0eb1d97..a71e2d5 100644
/usr/share/gnucash/finance-quote-check -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/gnucash/finance-quote-helper -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/hal/device-manager/hal-device-manager -- gen_context(system_u:object_r:bin_t,s0)
-@@ -314,6 +329,7 @@ ifdef(`distro_redhat', `
+@@ -314,6 +331,7 @@ ifdef(`distro_redhat', `
/usr/share/texmf/web2c/mktexdir -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/texmf/web2c/mktexnam -- gen_context(system_u:object_r:bin_t,s0)
/usr/share/texmf/web2c/mktexupd -- gen_context(system_u:object_r:bin_t,s0)
@@ -6897,7 +6907,7 @@ index 0eb1d97..a71e2d5 100644
')
ifdef(`distro_suse', `
-@@ -340,3 +356,27 @@ ifdef(`distro_suse', `
+@@ -340,3 +358,27 @@ ifdef(`distro_suse', `
ifdef(`distro_suse',`
/var/lib/samba/bin/.+ gen_context(system_u:object_r:bin_t,s0)
')
@@ -6957,7 +6967,7 @@ index 9e5c83e..953e0e8 100644
+/lib/udev/devices/ppp -c gen_context(system_u:object_r:ppp_device_t,s0)
+/lib/udev/devices/net/.* -c gen_context(system_u:object_r:tun_tap_device_t,s0)
diff --git a/policy/modules/kernel/corenetwork.te.in b/policy/modules/kernel/corenetwork.te.in
-index 2ecdde8..f118873 100644
+index 2ecdde8..bb4adcb 100644
--- a/policy/modules/kernel/corenetwork.te.in
+++ b/policy/modules/kernel/corenetwork.te.in
@@ -24,6 +24,7 @@ dev_node(ppp_device_t)
@@ -7079,7 +7089,7 @@ index 2ecdde8..f118873 100644
network_port(printer, tcp,515,s0)
network_port(ptal, tcp,5703,s0)
network_port(pulseaudio, tcp,4713,s0)
-@@ -174,24 +194,27 @@ network_port(ricci, tcp,11111,s0, udp,11111,s0)
+@@ -174,24 +194,28 @@ network_port(ricci, tcp,11111,s0, udp,11111,s0)
network_port(ricci_modcluster, tcp,16851,s0, udp,16851,s0)
network_port(rlogind, tcp,513,s0)
network_port(rndc, tcp,953,s0)
@@ -7089,6 +7099,7 @@ index 2ecdde8..f118873 100644
network_port(rsync, tcp,873,s0, udp,873,s0)
network_port(rwho, udp,513,s0)
network_port(sap, tcp,9875,s0, udp,9875,s0)
++network_port(sametime, tcp,1533,s0, udp,1533,s0)
network_port(sieve, tcp,4190,s0)
-network_port(sip, tcp,5060,s0, udp,5060,s0, tcp,5061,s0, udp,5061,s0)
+network_port(sip, tcp,5060-5061,s0, udp,5060-5061,s0)
@@ -7111,7 +7122,7 @@ index 2ecdde8..f118873 100644
network_port(syslogd, udp,514,s0)
network_port(telnetd, tcp,23,s0)
network_port(tftp, udp,69,s0)
-@@ -201,16 +224,17 @@ network_port(transproxy, tcp,8081,s0)
+@@ -201,16 +225,17 @@ network_port(transproxy, tcp,8081,s0)
network_port(ups, tcp,3493,s0)
type utcpserver_port_t, port_type; dnl network_port(utcpserver) # no defined portcon
network_port(uucpd, tcp,540,s0)
@@ -7133,19 +7144,18 @@ index 2ecdde8..f118873 100644
network_port(zope, tcp,8021,s0)
diff --git a/policy/modules/kernel/devices.fc b/policy/modules/kernel/devices.fc
-index 3b2da10..18f3f4c 100644
+index 3b2da10..7c29e17 100644
--- a/policy/modules/kernel/devices.fc
+++ b/policy/modules/kernel/devices.fc
-@@ -159,6 +159,8 @@ ifdef(`distro_suse', `
+@@ -159,6 +159,7 @@ ifdef(`distro_suse', `
/dev/mvideo/.* -c gen_context(system_u:object_r:xserver_misc_device_t,s0)
-+/dev/hugepages(/.*)? <>
+/dev/mqueue(/.*)? <>
/dev/pts(/.*)? <>
/dev/s(ou)?nd/.* -c gen_context(system_u:object_r:sound_device_t,s0)
-@@ -176,13 +178,12 @@ ifdef(`distro_suse', `
+@@ -176,13 +177,12 @@ ifdef(`distro_suse', `
/etc/udev/devices -d gen_context(system_u:object_r:device_t,s0)
@@ -7161,7 +7171,7 @@ index 3b2da10..18f3f4c 100644
ifdef(`distro_redhat',`
# originally from named.fc
-@@ -191,3 +192,8 @@ ifdef(`distro_redhat',`
+@@ -191,3 +191,8 @@ ifdef(`distro_redhat',`
/var/named/chroot/dev/random -c gen_context(system_u:object_r:random_device_t,s0)
/var/named/chroot/dev/zero -c gen_context(system_u:object_r:zero_device_t,s0)
')
@@ -7171,10 +7181,35 @@ index 3b2da10..18f3f4c 100644
+#
+/sys(/.*)? gen_context(system_u:object_r:sysfs_t,s0)
diff --git a/policy/modules/kernel/devices.if b/policy/modules/kernel/devices.if
-index 8b09281..e896bf7 100644
+index 8b09281..3fb8756 100644
--- a/policy/modules/kernel/devices.if
+++ b/policy/modules/kernel/devices.if
-@@ -498,6 +498,24 @@ interface(`dev_getattr_generic_chr_files',`
+@@ -318,6 +318,24 @@ interface(`dev_dontaudit_getattr_generic_files',`
+
+ ########################################
+ ##
++## read generic files in /dev.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`dev_read_generic_files',`
++ gen_require(`
++ type device_t;
++ ')
++
++ read_files_pattern($1, device_t, device_t)
++')
++
++########################################
++##
+ ## Read and write generic files in /dev.
+ ##
+ ##
+@@ -498,6 +516,24 @@ interface(`dev_getattr_generic_chr_files',`
########################################
##
@@ -7199,7 +7234,7 @@ index 8b09281..e896bf7 100644
## Dontaudit getattr for generic character device files.
##
##
-@@ -534,6 +552,24 @@ interface(`dev_dontaudit_setattr_generic_chr_files',`
+@@ -534,6 +570,24 @@ interface(`dev_dontaudit_setattr_generic_chr_files',`
########################################
##
@@ -7224,7 +7259,7 @@ index 8b09281..e896bf7 100644
## Read and write generic character device files.
##
##
-@@ -552,6 +588,24 @@ interface(`dev_rw_generic_chr_files',`
+@@ -552,6 +606,24 @@ interface(`dev_rw_generic_chr_files',`
########################################
##
@@ -7249,7 +7284,7 @@ index 8b09281..e896bf7 100644
## Dontaudit attempts to read/write generic character device files.
##
##
-@@ -661,6 +715,24 @@ interface(`dev_delete_generic_symlinks',`
+@@ -661,6 +733,24 @@ interface(`dev_delete_generic_symlinks',`
########################################
##
@@ -7274,7 +7309,7 @@ index 8b09281..e896bf7 100644
## Create, delete, read, and write symbolic links in device directories.
##
##
-@@ -1070,6 +1142,42 @@ interface(`dev_create_all_chr_files',`
+@@ -1070,6 +1160,42 @@ interface(`dev_create_all_chr_files',`
########################################
##
@@ -7317,7 +7352,7 @@ index 8b09281..e896bf7 100644
## Delete all block device files.
##
##
-@@ -1332,6 +1440,24 @@ interface(`dev_getattr_autofs_dev',`
+@@ -1332,6 +1458,24 @@ interface(`dev_getattr_autofs_dev',`
########################################
##
@@ -7342,7 +7377,7 @@ index 8b09281..e896bf7 100644
## Do not audit attempts to get the attributes of
## the autofs device node.
##
-@@ -3595,6 +3721,24 @@ interface(`dev_manage_smartcard',`
+@@ -3595,6 +3739,24 @@ interface(`dev_manage_smartcard',`
########################################
##
@@ -7367,7 +7402,7 @@ index 8b09281..e896bf7 100644
## Get the attributes of sysfs directories.
##
##
-@@ -3737,6 +3881,24 @@ interface(`dev_rw_sysfs',`
+@@ -3737,6 +3899,24 @@ interface(`dev_rw_sysfs',`
########################################
##
@@ -7392,7 +7427,7 @@ index 8b09281..e896bf7 100644
## Read from pseudo random number generator devices (e.g., /dev/urandom).
##
##
-@@ -3906,6 +4068,24 @@ interface(`dev_read_usbmon_dev',`
+@@ -3906,6 +4086,24 @@ interface(`dev_read_usbmon_dev',`
########################################
##
@@ -7417,7 +7452,7 @@ index 8b09281..e896bf7 100644
## Mount a usbfs filesystem.
##
##
-@@ -4216,11 +4396,10 @@ interface(`dev_write_video_dev',`
+@@ -4216,11 +4414,10 @@ interface(`dev_write_video_dev',`
#
interface(`dev_rw_vhost',`
gen_require(`
@@ -7496,7 +7531,7 @@ index aad8c52..09d4b31 100644
+ dontaudit $1 domain:socket_class_set { read write };
+')
diff --git a/policy/modules/kernel/domain.te b/policy/modules/kernel/domain.te
-index 099f57f..ae62211 100644
+index 099f57f..d58ef64 100644
--- a/policy/modules/kernel/domain.te
+++ b/policy/modules/kernel/domain.te
@@ -4,6 +4,21 @@ policy_module(domain, 1.8.1)
@@ -7586,7 +7621,7 @@ index 099f57f..ae62211 100644
# Act upon any other process.
allow unconfined_domain_type domain:process ~{ transition dyntransition execmem execstack execheap };
-@@ -160,3 +194,77 @@ allow unconfined_domain_type domain:key *;
+@@ -160,3 +194,81 @@ allow unconfined_domain_type domain:key *;
# receive from all domains over labeled networking
domain_all_recvfrom_all_domains(unconfined_domain_type)
@@ -7648,6 +7683,10 @@ index 099f57f..ae62211 100644
+')
+
+optional_policy(`
++ hal_dontaudit_read_pid_files(domain)
++')
++
++optional_policy(`
+ ifdef(`hide_broken_symptoms',`
+ afs_rw_udp_sockets(domain)
+ ')
@@ -8454,20 +8493,25 @@ index 07352a5..12e9ecf 100644
#Temporarily in policy until FC5 dissappears
typealias etc_runtime_t alias firstboot_rw_t;
diff --git a/policy/modules/kernel/filesystem.fc b/policy/modules/kernel/filesystem.fc
-index 9306de6..41dfd80 100644
+index 59bae6a..16f0f9e 100644
--- a/policy/modules/kernel/filesystem.fc
+++ b/policy/modules/kernel/filesystem.fc
-@@ -1,3 +1,4 @@
- /dev/shm -d gen_context(system_u:object_r:tmpfs_t,s0)
+@@ -2,5 +2,10 @@
+ /dev/shm/.* <>
--/cgroup -d gen_context(system_u:object_r:cgroup_t,s0)
-+/cgroup(/.*)? gen_context(system_u:object_r:cgroup_t,s0)
-+/sys/fs/cgroup(/.*)? <>
+ /cgroup -d gen_context(system_u:object_r:cgroup_t,s0)
++/cgroup/.* <>
+
++/sys/fs/cgroup -d gen_context(system_u:object_r:cgroup_t,s0)
+ /sys/fs/cgroup(/.*)? <>
++
++/dev/hugepages -d gen_context(system_u:object_r:hugetlbfs_t,s0)
++/dev/hugepages(/.*)? <>
diff --git a/policy/modules/kernel/filesystem.if b/policy/modules/kernel/filesystem.if
-index e3e17ba..3b34959 100644
+index 437a42a..8d6d333 100644
--- a/policy/modules/kernel/filesystem.if
+++ b/policy/modules/kernel/filesystem.if
-@@ -1233,7 +1233,7 @@ interface(`fs_dontaudit_rw_cifs_files',`
+@@ -1241,7 +1241,7 @@ interface(`fs_dontaudit_rw_cifs_files',`
type cifs_t;
')
@@ -8476,7 +8520,7 @@ index e3e17ba..3b34959 100644
')
########################################
-@@ -1496,6 +1496,25 @@ interface(`fs_cifs_domtrans',`
+@@ -1504,6 +1504,25 @@ interface(`fs_cifs_domtrans',`
domain_auto_transition_pattern($1, cifs_t, $2)
')
@@ -8502,7 +8546,7 @@ index e3e17ba..3b34959 100644
#######################################
##
## Create, read, write, and delete dirs
-@@ -1923,7 +1942,26 @@ interface(`fs_read_fusefs_symlinks',`
+@@ -1931,7 +1950,26 @@ interface(`fs_read_fusefs_symlinks',`
########################################
##
@@ -8530,7 +8574,7 @@ index e3e17ba..3b34959 100644
##
##
##
-@@ -1938,6 +1976,41 @@ interface(`fs_rw_hugetlbfs_files',`
+@@ -1946,6 +1984,41 @@ interface(`fs_rw_hugetlbfs_files',`
rw_files_pattern($1, hugetlbfs_t, hugetlbfs_t)
')
@@ -8572,7 +8616,7 @@ index e3e17ba..3b34959 100644
########################################
##
-@@ -1991,6 +2064,7 @@ interface(`fs_list_inotifyfs',`
+@@ -1999,6 +2072,7 @@ interface(`fs_list_inotifyfs',`
')
allow $1 inotifyfs_t:dir list_dir_perms;
@@ -8580,7 +8624,7 @@ index e3e17ba..3b34959 100644
')
########################################
-@@ -2387,6 +2461,25 @@ interface(`fs_exec_nfs_files',`
+@@ -2395,6 +2469,25 @@ interface(`fs_exec_nfs_files',`
########################################
##
@@ -8606,7 +8650,7 @@ index e3e17ba..3b34959 100644
## Append files
## on a NFS filesystem.
##
-@@ -2441,7 +2534,7 @@ interface(`fs_dontaudit_rw_nfs_files',`
+@@ -2449,7 +2542,7 @@ interface(`fs_dontaudit_rw_nfs_files',`
type nfs_t;
')
@@ -8615,7 +8659,7 @@ index e3e17ba..3b34959 100644
')
########################################
-@@ -2629,6 +2722,24 @@ interface(`fs_dontaudit_read_removable_files',`
+@@ -2637,6 +2730,24 @@ interface(`fs_dontaudit_read_removable_files',`
########################################
##
@@ -8640,7 +8684,7 @@ index e3e17ba..3b34959 100644
## Read removable storage symbolic links.
##
##
-@@ -2837,7 +2948,7 @@ interface(`fs_dontaudit_manage_nfs_files',`
+@@ -2845,7 +2956,7 @@ interface(`fs_dontaudit_manage_nfs_files',`
#########################################
##
## Create, read, write, and delete symbolic links
@@ -8649,7 +8693,7 @@ index e3e17ba..3b34959 100644
##
##
##
-@@ -3962,6 +4073,24 @@ interface(`fs_dontaudit_use_tmpfs_chr_dev',`
+@@ -3970,6 +4081,24 @@ interface(`fs_dontaudit_use_tmpfs_chr_dev',`
########################################
##
@@ -8674,7 +8718,7 @@ index e3e17ba..3b34959 100644
## Relabel character nodes on tmpfs filesystems.
##
##
-@@ -4654,3 +4783,24 @@ interface(`fs_unconfined',`
+@@ -4662,3 +4791,24 @@ interface(`fs_unconfined',`
typeattribute $1 filesystem_unconfined_type;
')
@@ -8700,7 +8744,7 @@ index e3e17ba..3b34959 100644
+')
+
diff --git a/policy/modules/kernel/filesystem.te b/policy/modules/kernel/filesystem.te
-index 56c3408..3f4cf3d 100644
+index 0dff98e..930062c 100644
--- a/policy/modules/kernel/filesystem.te
+++ b/policy/modules/kernel/filesystem.te
@@ -52,6 +52,7 @@ type anon_inodefs_t;
@@ -10416,10 +10460,10 @@ index 0000000..8b2cdf3
+
diff --git a/policy/modules/roles/unconfineduser.te b/policy/modules/roles/unconfineduser.te
new file mode 100644
-index 0000000..177e89c
+index 0000000..799db36
--- /dev/null
+++ b/policy/modules/roles/unconfineduser.te
-@@ -0,0 +1,462 @@
+@@ -0,0 +1,475 @@
+policy_module(unconfineduser, 1.0.0)
+
+########################################
@@ -10437,6 +10481,13 @@ index 0000000..177e89c
+
+##
+##
++## Allow vidio playing tools to tun unconfined
++##
++##
++gen_tunable(unconfined_mplayer, false)
++
++##
++##
+## Allow a user to login as an unconfined domain
+##
+##
@@ -10858,6 +10909,12 @@ index 0000000..177e89c
+ ')
+
+ optional_policy(`
++ tunable_policy(`unconfined_login',`
++ mplayer_exec_domtrans(unconfined_t, unconfined_execmem_t)
++ ')
++ ')
++
++ optional_policy(`
+ openoffice_exec_domtrans(unconfined_t, unconfined_execmem_t)
+ ')
+')
@@ -11645,7 +11702,7 @@ index cf34b4e..cc216a4 100644
kernel_read_kernel_sysctls(amavis_t)
# amavis tries to access /proc/self/stat, /etc/shadow and /root - perl...
diff --git a/policy/modules/services/apache.fc b/policy/modules/services/apache.fc
-index 9e39aa5..b37de8e 100644
+index 9e39aa5..8603d4d 100644
--- a/policy/modules/services/apache.fc
+++ b/policy/modules/services/apache.fc
@@ -2,7 +2,7 @@ HOME_DIR/((www)|(web)|(public_html))(/.+)? gen_context(system_u:object_r:httpd_u
@@ -11693,7 +11750,7 @@ index 9e39aa5..b37de8e 100644
ifdef(`distro_debian', `
/var/log/horde2(/.*)? gen_context(system_u:object_r:httpd_log_t,s0)
-@@ -109,3 +107,16 @@ ifdef(`distro_debian', `
+@@ -109,3 +107,17 @@ ifdef(`distro_debian', `
/var/www/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
/var/www/icons(/.*)? gen_context(system_u:object_r:httpd_sys_content_t,s0)
/var/www/perl(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
@@ -11705,16 +11762,17 @@ index 9e39aa5..b37de8e 100644
+/var/www/gallery/albums(/.*)? gen_context(system_u:object_r:httpd_sys_rw_content_t,s0)
+
+/var/lib/koji(/.*)? gen_context(system_u:object_r:httpd_sys_rw_content_t,s0)
++/var/lib/pootle/po(/.*)? gen_context(system_u:object_r:httpd_sys_rw_content_t,s0)
+/var/lib/rt3/data/RT-Shredder(/.*)? gen_context(system_u:object_r:httpd_var_lib_t,s0)
+
+/var/www/svn(/.*)? gen_context(system_u:object_r:httpd_sys_rw_content_t,s0)
+/var/www/svn/hooks(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
+/var/www/svn/conf(/.*)? gen_context(system_u:object_r:httpd_sys_content_t,s0)
diff --git a/policy/modules/services/apache.if b/policy/modules/services/apache.if
-index c9e1a44..c96d035 100644
+index c9e1a44..2244b11 100644
--- a/policy/modules/services/apache.if
+++ b/policy/modules/services/apache.if
-@@ -13,17 +13,13 @@
+@@ -13,17 +13,14 @@
#
template(`apache_content_template',`
gen_require(`
@@ -11727,14 +11785,21 @@ index c9e1a44..c96d035 100644
- # allow write access to public file transfer
- # services files.
- gen_tunable(allow_httpd_$1_script_anon_write, false)
--
+
#This type is for webpages
- type httpd_$1_content_t, httpdcontent; # customizable
+ type httpd_$1_content_t; # customizable;
typealias httpd_$1_content_t alias httpd_$1_script_ro_t;
files_type(httpd_$1_content_t)
-@@ -41,11 +37,11 @@ template(`apache_content_template',`
+@@ -36,16 +33,18 @@ template(`apache_content_template',`
+ domain_type(httpd_$1_script_t)
+ role system_r types httpd_$1_script_t;
+
++ search_dirs_pattern(httpd_$1_script_t, httpd_sys_content_t, httpd_script_exec_type)
++
+ # This type is used for executable scripts files
+ type httpd_$1_script_exec_t, httpd_script_exec_type; # customizable;
corecmd_shell_entry_type(httpd_$1_script_t)
domain_entry_file(httpd_$1_script_t, httpd_$1_script_exec_t)
@@ -11748,7 +11813,7 @@ index c9e1a44..c96d035 100644
typealias httpd_$1_ra_content_t alias { httpd_$1_script_ra_t httpd_$1_content_ra_t };
files_type(httpd_$1_ra_content_t)
-@@ -54,7 +50,7 @@ template(`apache_content_template',`
+@@ -54,7 +53,7 @@ template(`apache_content_template',`
domtrans_pattern(httpd_suexec_t, httpd_$1_script_exec_t, httpd_$1_script_t)
allow httpd_t { httpd_$1_content_t httpd_$1_rw_content_t httpd_$1_script_exec_t }:dir search_dir_perms;
@@ -11757,7 +11822,7 @@ index c9e1a44..c96d035 100644
allow httpd_$1_script_t self:fifo_file rw_file_perms;
allow httpd_$1_script_t self:unix_stream_socket connectto;
-@@ -86,7 +82,6 @@ template(`apache_content_template',`
+@@ -86,7 +85,6 @@ template(`apache_content_template',`
manage_lnk_files_pattern(httpd_$1_script_t, httpd_$1_rw_content_t, httpd_$1_rw_content_t)
manage_fifo_files_pattern(httpd_$1_script_t, httpd_$1_rw_content_t, httpd_$1_rw_content_t)
manage_sock_files_pattern(httpd_$1_script_t, httpd_$1_rw_content_t, httpd_$1_rw_content_t)
@@ -11765,7 +11830,7 @@ index c9e1a44..c96d035 100644
kernel_dontaudit_search_sysctl(httpd_$1_script_t)
kernel_dontaudit_search_kernel_sysctl(httpd_$1_script_t)
-@@ -95,6 +90,7 @@ template(`apache_content_template',`
+@@ -95,6 +93,7 @@ template(`apache_content_template',`
dev_read_urand(httpd_$1_script_t)
corecmd_exec_all_executables(httpd_$1_script_t)
@@ -11773,7 +11838,7 @@ index c9e1a44..c96d035 100644
files_exec_etc_files(httpd_$1_script_t)
files_read_etc_files(httpd_$1_script_t)
-@@ -108,19 +104,6 @@ template(`apache_content_template',`
+@@ -108,19 +107,6 @@ template(`apache_content_template',`
seutil_dontaudit_search_config(httpd_$1_script_t)
@@ -11793,7 +11858,7 @@ index c9e1a44..c96d035 100644
# Allow the web server to run scripts and serve pages
tunable_policy(`httpd_builtin_scripting',`
manage_dirs_pattern(httpd_t, httpd_$1_rw_content_t, httpd_$1_rw_content_t)
-@@ -140,6 +123,7 @@ template(`apache_content_template',`
+@@ -140,6 +126,7 @@ template(`apache_content_template',`
allow httpd_t httpd_$1_content_t:dir list_dir_perms;
read_files_pattern(httpd_t, httpd_$1_content_t, httpd_$1_content_t)
read_lnk_files_pattern(httpd_t, httpd_$1_content_t, httpd_$1_content_t)
@@ -11801,7 +11866,7 @@ index c9e1a44..c96d035 100644
')
tunable_policy(`httpd_enable_cgi',`
-@@ -148,14 +132,19 @@ template(`apache_content_template',`
+@@ -148,14 +135,19 @@ template(`apache_content_template',`
# privileged users run the script:
domtrans_pattern(httpd_exec_scripts, httpd_$1_script_exec_t, httpd_$1_script_t)
@@ -11821,7 +11886,7 @@ index c9e1a44..c96d035 100644
allow httpd_$1_script_t httpd_t:fd use;
allow httpd_$1_script_t httpd_t:process sigchld;
-@@ -172,6 +161,7 @@ template(`apache_content_template',`
+@@ -172,6 +164,7 @@ template(`apache_content_template',`
libs_read_lib_files(httpd_$1_script_t)
miscfiles_read_localization(httpd_$1_script_t)
@@ -11829,7 +11894,7 @@ index c9e1a44..c96d035 100644
')
optional_policy(`
-@@ -182,15 +172,13 @@ template(`apache_content_template',`
+@@ -182,15 +175,13 @@ template(`apache_content_template',`
optional_policy(`
postgresql_unpriv_client(httpd_$1_script_t)
@@ -11847,7 +11912,7 @@ index c9e1a44..c96d035 100644
')
########################################
-@@ -229,6 +217,13 @@ interface(`apache_role',`
+@@ -229,6 +220,13 @@ interface(`apache_role',`
relabel_files_pattern($2, httpd_user_ra_content_t, httpd_user_ra_content_t)
relabel_lnk_files_pattern($2, httpd_user_ra_content_t, httpd_user_ra_content_t)
@@ -11861,7 +11926,7 @@ index c9e1a44..c96d035 100644
manage_dirs_pattern($2, httpd_user_rw_content_t, httpd_user_rw_content_t)
manage_files_pattern($2, httpd_user_rw_content_t, httpd_user_rw_content_t)
manage_lnk_files_pattern($2, httpd_user_rw_content_t, httpd_user_rw_content_t)
-@@ -243,6 +238,8 @@ interface(`apache_role',`
+@@ -243,6 +241,8 @@ interface(`apache_role',`
relabel_files_pattern($2, httpd_user_script_exec_t, httpd_user_script_exec_t)
relabel_lnk_files_pattern($2, httpd_user_script_exec_t, httpd_user_script_exec_t)
@@ -11870,7 +11935,7 @@ index c9e1a44..c96d035 100644
tunable_policy(`httpd_enable_cgi',`
# If a user starts a script by hand it gets the proper context
domtrans_pattern($2, httpd_user_script_exec_t, httpd_user_script_t)
-@@ -312,6 +309,25 @@ interface(`apache_domtrans',`
+@@ -312,6 +312,25 @@ interface(`apache_domtrans',`
domtrans_pattern($1, httpd_exec_t, httpd_t)
')
@@ -11896,7 +11961,7 @@ index c9e1a44..c96d035 100644
#######################################
##
## Send a generic signal to apache.
-@@ -400,7 +416,7 @@ interface(`apache_dontaudit_rw_fifo_file',`
+@@ -400,7 +419,7 @@ interface(`apache_dontaudit_rw_fifo_file',`
type httpd_t;
')
@@ -11905,7 +11970,7 @@ index c9e1a44..c96d035 100644
')
########################################
-@@ -526,6 +542,25 @@ interface(`apache_rw_cache_files',`
+@@ -526,6 +545,25 @@ interface(`apache_rw_cache_files',`
########################################
##
## Allow the specified domain to delete
@@ -11931,7 +11996,7 @@ index c9e1a44..c96d035 100644
## Apache cache.
##
##
-@@ -740,6 +775,25 @@ interface(`apache_dontaudit_search_modules',`
+@@ -740,6 +778,25 @@ interface(`apache_dontaudit_search_modules',`
########################################
##
@@ -11957,7 +12022,7 @@ index c9e1a44..c96d035 100644
## Allow the specified domain to list
## the contents of the apache modules
## directory.
-@@ -756,6 +810,7 @@ interface(`apache_list_modules',`
+@@ -756,6 +813,7 @@ interface(`apache_list_modules',`
')
allow $1 httpd_modules_t:dir list_dir_perms;
@@ -11965,7 +12030,7 @@ index c9e1a44..c96d035 100644
')
########################################
-@@ -814,6 +869,7 @@ interface(`apache_list_sys_content',`
+@@ -814,6 +872,7 @@ interface(`apache_list_sys_content',`
')
list_dirs_pattern($1, httpd_sys_content_t, httpd_sys_content_t)
@@ -11973,7 +12038,7 @@ index c9e1a44..c96d035 100644
files_search_var($1)
')
-@@ -836,11 +892,80 @@ interface(`apache_manage_sys_content',`
+@@ -836,11 +895,80 @@ interface(`apache_manage_sys_content',`
')
files_search_var($1)
@@ -12054,7 +12119,7 @@ index c9e1a44..c96d035 100644
########################################
##
## Execute all web scripts in the system
-@@ -858,6 +983,11 @@ interface(`apache_domtrans_sys_script',`
+@@ -858,6 +986,11 @@ interface(`apache_domtrans_sys_script',`
gen_require(`
attribute httpdcontent;
type httpd_sys_script_t;
@@ -12066,7 +12131,7 @@ index c9e1a44..c96d035 100644
')
tunable_policy(`httpd_enable_cgi && httpd_unified',`
-@@ -945,7 +1075,7 @@ interface(`apache_read_squirrelmail_data',`
+@@ -945,7 +1078,7 @@ interface(`apache_read_squirrelmail_data',`
type httpd_squirrelmail_t;
')
@@ -12075,7 +12140,7 @@ index c9e1a44..c96d035 100644
')
########################################
-@@ -1086,6 +1216,25 @@ interface(`apache_read_tmp_files',`
+@@ -1086,6 +1219,25 @@ interface(`apache_read_tmp_files',`
read_files_pattern($1, httpd_tmp_t, httpd_tmp_t)
')
@@ -12101,7 +12166,7 @@ index c9e1a44..c96d035 100644
########################################
##
## Dontaudit attempts to write
-@@ -1102,7 +1251,7 @@ interface(`apache_dontaudit_write_tmp_files',`
+@@ -1102,7 +1254,7 @@ interface(`apache_dontaudit_write_tmp_files',`
type httpd_tmp_t;
')
@@ -12110,7 +12175,7 @@ index c9e1a44..c96d035 100644
')
########################################
-@@ -1172,7 +1321,7 @@ interface(`apache_admin',`
+@@ -1172,7 +1324,7 @@ interface(`apache_admin',`
type httpd_modules_t, httpd_lock_t;
type httpd_var_run_t, httpd_php_tmp_t;
type httpd_suexec_tmp_t, httpd_tmp_t;
@@ -12119,7 +12184,7 @@ index c9e1a44..c96d035 100644
')
allow $1 httpd_t:process { getattr ptrace signal_perms };
-@@ -1202,12 +1351,43 @@ interface(`apache_admin',`
+@@ -1202,12 +1354,43 @@ interface(`apache_admin',`
kernel_search_proc($1)
allow $1 httpd_t:dir list_dir_perms;
@@ -12165,7 +12230,7 @@ index c9e1a44..c96d035 100644
+ dontaudit $1 httpd_t:unix_stream_socket { read write };
')
diff --git a/policy/modules/services/apache.te b/policy/modules/services/apache.te
-index e33b9cd..08ec94f 100644
+index e33b9cd..de4388a 100644
--- a/policy/modules/services/apache.te
+++ b/policy/modules/services/apache.te
@@ -18,6 +18,8 @@ policy_module(apache, 2.2.0)
@@ -12212,7 +12277,21 @@ index e33b9cd..08ec94f 100644
## Allow HTTPD scripts and modules to connect to databases over the network.
##
##
-@@ -71,6 +94,13 @@ gen_tunable(httpd_can_sendmail, false)
+@@ -57,6 +80,13 @@ gen_tunable(httpd_can_network_connect_db, false)
+
+ ##
+ ##
++## Allow httpd to connect to memcache server
++##
++##
++gen_tunable(httpd_can_network_memcache, false)
++
++##
++##
+ ## Allow httpd to act as a relay
+ ##
+ ##
+@@ -71,6 +101,13 @@ gen_tunable(httpd_can_sendmail, false)
##
##
@@ -12226,7 +12305,7 @@ index e33b9cd..08ec94f 100644
## Allow Apache to communicate with avahi service via dbus
##
##
-@@ -100,6 +130,13 @@ gen_tunable(httpd_enable_homedirs, false)
+@@ -100,6 +137,13 @@ gen_tunable(httpd_enable_homedirs, false)
##
##
@@ -12240,7 +12319,7 @@ index e33b9cd..08ec94f 100644
## Allow HTTPD to run SSI executables in the same domain as system CGI scripts.
##
##
-@@ -107,6 +144,13 @@ gen_tunable(httpd_ssi_exec, false)
+@@ -107,6 +151,13 @@ gen_tunable(httpd_ssi_exec, false)
##
##
@@ -12254,7 +12333,7 @@ index e33b9cd..08ec94f 100644
## Unify HTTPD to communicate with the terminal.
## Needed for entering the passphrase for certificates at
## the terminal.
-@@ -130,7 +174,7 @@ gen_tunable(httpd_use_cifs, false)
+@@ -130,7 +181,7 @@ gen_tunable(httpd_use_cifs, false)
##
##
@@ -12263,7 +12342,7 @@ index e33b9cd..08ec94f 100644
##
##
gen_tunable(httpd_use_gpg, false)
-@@ -142,6 +186,13 @@ gen_tunable(httpd_use_gpg, false)
+@@ -142,6 +193,13 @@ gen_tunable(httpd_use_gpg, false)
##
gen_tunable(httpd_use_nfs, false)
@@ -12277,7 +12356,7 @@ index e33b9cd..08ec94f 100644
attribute httpdcontent;
attribute httpd_user_content_type;
-@@ -216,7 +267,10 @@ files_tmp_file(httpd_suexec_tmp_t)
+@@ -216,7 +274,10 @@ files_tmp_file(httpd_suexec_tmp_t)
# setup the system domain for system CGI scripts
apache_content_template(sys)
@@ -12289,7 +12368,7 @@ index e33b9cd..08ec94f 100644
type httpd_tmp_t;
files_tmp_file(httpd_tmp_t)
-@@ -226,6 +280,10 @@ files_tmpfs_file(httpd_tmpfs_t)
+@@ -226,6 +287,10 @@ files_tmpfs_file(httpd_tmpfs_t)
apache_content_template(user)
ubac_constrained(httpd_user_script_t)
@@ -12300,7 +12379,7 @@ index e33b9cd..08ec94f 100644
userdom_user_home_content(httpd_user_content_t)
userdom_user_home_content(httpd_user_htaccess_t)
userdom_user_home_content(httpd_user_script_exec_t)
-@@ -233,6 +291,7 @@ userdom_user_home_content(httpd_user_ra_content_t)
+@@ -233,6 +298,7 @@ userdom_user_home_content(httpd_user_ra_content_t)
userdom_user_home_content(httpd_user_rw_content_t)
typeattribute httpd_user_script_t httpd_script_domains;
typealias httpd_user_content_t alias { httpd_staff_content_t httpd_sysadm_content_t };
@@ -12308,7 +12387,7 @@ index e33b9cd..08ec94f 100644
typealias httpd_user_content_t alias { httpd_auditadm_content_t httpd_secadm_content_t };
typealias httpd_user_content_t alias { httpd_staff_script_ro_t httpd_sysadm_script_ro_t };
typealias httpd_user_content_t alias { httpd_auditadm_script_ro_t httpd_secadm_script_ro_t };
-@@ -286,6 +345,7 @@ allow httpd_t self:udp_socket create_socket_perms;
+@@ -286,6 +352,7 @@ allow httpd_t self:udp_socket create_socket_perms;
manage_dirs_pattern(httpd_t, httpd_cache_t, httpd_cache_t)
manage_files_pattern(httpd_t, httpd_cache_t, httpd_cache_t)
manage_lnk_files_pattern(httpd_t, httpd_cache_t, httpd_cache_t)
@@ -12316,7 +12395,7 @@ index e33b9cd..08ec94f 100644
# Allow the httpd_t to read the web servers config files
allow httpd_t httpd_config_t:dir list_dir_perms;
-@@ -355,6 +415,7 @@ manage_lnk_files_pattern(httpd_t, squirrelmail_spool_t, squirrelmail_spool_t)
+@@ -355,6 +422,7 @@ manage_lnk_files_pattern(httpd_t, squirrelmail_spool_t, squirrelmail_spool_t)
kernel_read_kernel_sysctls(httpd_t)
# for modules that want to access /proc/meminfo
kernel_read_system_state(httpd_t)
@@ -12324,7 +12403,7 @@ index e33b9cd..08ec94f 100644
corenet_all_recvfrom_unlabeled(httpd_t)
corenet_all_recvfrom_netlabel(httpd_t)
-@@ -365,8 +426,10 @@ corenet_udp_sendrecv_generic_node(httpd_t)
+@@ -365,8 +433,10 @@ corenet_udp_sendrecv_generic_node(httpd_t)
corenet_tcp_sendrecv_all_ports(httpd_t)
corenet_udp_sendrecv_all_ports(httpd_t)
corenet_tcp_bind_generic_node(httpd_t)
@@ -12335,7 +12414,7 @@ index e33b9cd..08ec94f 100644
corenet_sendrecv_http_server_packets(httpd_t)
# Signal self for shutdown
corenet_tcp_connect_http_port(httpd_t)
-@@ -378,12 +441,12 @@ dev_rw_crypto(httpd_t)
+@@ -378,12 +448,12 @@ dev_rw_crypto(httpd_t)
fs_getattr_all_fs(httpd_t)
fs_search_auto_mountpoints(httpd_t)
@@ -12351,7 +12430,7 @@ index e33b9cd..08ec94f 100644
domain_use_interactive_fds(httpd_t)
-@@ -402,6 +465,10 @@ files_read_etc_files(httpd_t)
+@@ -402,6 +472,10 @@ files_read_etc_files(httpd_t)
files_read_var_lib_symlinks(httpd_t)
fs_search_auto_mountpoints(httpd_sys_script_t)
@@ -12362,7 +12441,7 @@ index e33b9cd..08ec94f 100644
libs_read_lib_files(httpd_t)
-@@ -416,16 +483,31 @@ seutil_dontaudit_search_config(httpd_t)
+@@ -416,16 +490,31 @@ seutil_dontaudit_search_config(httpd_t)
userdom_use_unpriv_users_fds(httpd_t)
@@ -12396,7 +12475,17 @@ index e33b9cd..08ec94f 100644
')
')
-@@ -439,13 +521,25 @@ tunable_policy(`httpd_can_network_relay',`
+@@ -433,19 +522,35 @@ tunable_policy(`httpd_can_network_connect',`
+ corenet_tcp_connect_all_ports(httpd_t)
+ ')
+
++tunable_policy(`httpd_can_network_memcache',`
++ corenet_tcp_connect_memcache_port(httpd_t)
++')
++
+ tunable_policy(`httpd_can_network_relay',`
+ # allow httpd to work as a relay
+ corenet_tcp_connect_gopher_port(httpd_t)
corenet_tcp_connect_ftp_port(httpd_t)
corenet_tcp_connect_http_port(httpd_t)
corenet_tcp_connect_http_cache_port(httpd_t)
@@ -12422,7 +12511,7 @@ index e33b9cd..08ec94f 100644
tunable_policy(`httpd_enable_cgi && httpd_use_nfs',`
fs_nfs_domtrans(httpd_t, httpd_sys_script_t)
')
-@@ -456,6 +550,10 @@ tunable_policy(`httpd_enable_cgi && httpd_use_cifs',`
+@@ -456,6 +561,10 @@ tunable_policy(`httpd_enable_cgi && httpd_use_cifs',`
tunable_policy(`httpd_enable_cgi && httpd_unified && httpd_builtin_scripting',`
domtrans_pattern(httpd_t, httpdcontent, httpd_sys_script_t)
@@ -12433,7 +12522,7 @@ index e33b9cd..08ec94f 100644
manage_dirs_pattern(httpd_t, httpdcontent, httpdcontent)
manage_files_pattern(httpd_t, httpdcontent, httpdcontent)
-@@ -470,11 +568,25 @@ tunable_policy(`httpd_enable_homedirs',`
+@@ -470,11 +579,25 @@ tunable_policy(`httpd_enable_homedirs',`
userdom_read_user_home_content_files(httpd_t)
')
@@ -12459,7 +12548,7 @@ index e33b9cd..08ec94f 100644
tunable_policy(`httpd_enable_homedirs && use_samba_home_dirs',`
fs_read_cifs_files(httpd_t)
fs_read_cifs_symlinks(httpd_t)
-@@ -484,7 +596,16 @@ tunable_policy(`httpd_can_sendmail',`
+@@ -484,7 +607,16 @@ tunable_policy(`httpd_can_sendmail',`
# allow httpd to connect to mail servers
corenet_tcp_connect_smtp_port(httpd_t)
corenet_sendrecv_smtp_client_packets(httpd_t)
@@ -12476,7 +12565,7 @@ index e33b9cd..08ec94f 100644
')
tunable_policy(`httpd_ssi_exec',`
-@@ -500,8 +621,10 @@ tunable_policy(`httpd_ssi_exec',`
+@@ -500,8 +632,10 @@ tunable_policy(`httpd_ssi_exec',`
# are dontaudited here.
tunable_policy(`httpd_tty_comm',`
userdom_use_user_terminals(httpd_t)
@@ -12487,7 +12576,7 @@ index e33b9cd..08ec94f 100644
')
optional_policy(`
-@@ -513,7 +636,13 @@ optional_policy(`
+@@ -513,7 +647,13 @@ optional_policy(`
')
optional_policy(`
@@ -12502,7 +12591,7 @@ index e33b9cd..08ec94f 100644
')
optional_policy(`
-@@ -528,7 +657,7 @@ optional_policy(`
+@@ -528,7 +668,7 @@ optional_policy(`
daemontools_service_domain(httpd_t, httpd_exec_t)
')
@@ -12511,7 +12600,7 @@ index e33b9cd..08ec94f 100644
dbus_system_bus_client(httpd_t)
tunable_policy(`httpd_dbus_avahi',`
-@@ -537,8 +666,12 @@ optional_policy(`
+@@ -537,8 +677,12 @@ optional_policy(`
')
optional_policy(`
@@ -12525,7 +12614,7 @@ index e33b9cd..08ec94f 100644
')
')
-@@ -557,6 +690,7 @@ optional_policy(`
+@@ -557,6 +701,7 @@ optional_policy(`
optional_policy(`
# Allow httpd to work with mysql
@@ -12533,7 +12622,7 @@ index e33b9cd..08ec94f 100644
mysql_stream_connect(httpd_t)
mysql_rw_db_sockets(httpd_t)
-@@ -567,6 +701,7 @@ optional_policy(`
+@@ -567,6 +712,7 @@ optional_policy(`
optional_policy(`
nagios_read_config(httpd_t)
@@ -12541,7 +12630,7 @@ index e33b9cd..08ec94f 100644
')
optional_policy(`
-@@ -577,12 +712,23 @@ optional_policy(`
+@@ -577,12 +723,23 @@ optional_policy(`
')
optional_policy(`
@@ -12565,7 +12654,7 @@ index e33b9cd..08ec94f 100644
')
')
-@@ -591,6 +737,11 @@ optional_policy(`
+@@ -591,6 +748,11 @@ optional_policy(`
')
optional_policy(`
@@ -12577,7 +12666,7 @@ index e33b9cd..08ec94f 100644
snmp_dontaudit_read_snmp_var_lib_files(httpd_t)
snmp_dontaudit_write_snmp_var_lib_files(httpd_t)
')
-@@ -603,6 +754,10 @@ optional_policy(`
+@@ -603,6 +765,10 @@ optional_policy(`
yam_read_content(httpd_t)
')
@@ -12588,7 +12677,7 @@ index e33b9cd..08ec94f 100644
########################################
#
# Apache helper local policy
-@@ -618,6 +773,10 @@ logging_send_syslog_msg(httpd_helper_t)
+@@ -618,6 +784,10 @@ logging_send_syslog_msg(httpd_helper_t)
userdom_use_user_terminals(httpd_helper_t)
@@ -12599,7 +12688,7 @@ index e33b9cd..08ec94f 100644
########################################
#
# Apache PHP script local policy
-@@ -699,17 +858,18 @@ manage_dirs_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
+@@ -699,17 +869,18 @@ manage_dirs_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
manage_files_pattern(httpd_suexec_t, httpd_suexec_tmp_t, httpd_suexec_tmp_t)
files_tmp_filetrans(httpd_suexec_t, httpd_suexec_tmp_t, { file dir })
@@ -12621,7 +12710,7 @@ index e33b9cd..08ec94f 100644
files_read_etc_files(httpd_suexec_t)
files_read_usr_files(httpd_suexec_t)
-@@ -740,10 +900,21 @@ tunable_policy(`httpd_can_network_connect',`
+@@ -740,10 +911,21 @@ tunable_policy(`httpd_can_network_connect',`
corenet_sendrecv_all_client_packets(httpd_suexec_t)
')
@@ -12644,7 +12733,7 @@ index e33b9cd..08ec94f 100644
')
tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',`
-@@ -769,6 +940,12 @@ optional_policy(`
+@@ -769,6 +951,12 @@ optional_policy(`
dontaudit httpd_suexec_t httpd_t:unix_stream_socket { read write };
')
@@ -12657,7 +12746,7 @@ index e33b9cd..08ec94f 100644
########################################
#
# Apache system script local policy
-@@ -792,9 +969,13 @@ kernel_read_kernel_sysctls(httpd_sys_script_t)
+@@ -792,9 +980,13 @@ kernel_read_kernel_sysctls(httpd_sys_script_t)
files_search_var_lib(httpd_sys_script_t)
files_search_spool(httpd_sys_script_t)
@@ -12671,7 +12760,7 @@ index e33b9cd..08ec94f 100644
ifdef(`distro_redhat',`
allow httpd_sys_script_t httpd_log_t:file append_file_perms;
')
-@@ -803,6 +984,28 @@ tunable_policy(`httpd_can_sendmail',`
+@@ -803,6 +995,28 @@ tunable_policy(`httpd_can_sendmail',`
mta_send_mail(httpd_sys_script_t)
')
@@ -12700,7 +12789,7 @@ index e33b9cd..08ec94f 100644
tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',`
allow httpd_sys_script_t self:tcp_socket create_stream_socket_perms;
allow httpd_sys_script_t self:udp_socket create_socket_perms;
-@@ -830,6 +1033,16 @@ tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',`
+@@ -830,6 +1044,16 @@ tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',`
fs_read_nfs_symlinks(httpd_sys_script_t)
')
@@ -12717,7 +12806,7 @@ index e33b9cd..08ec94f 100644
tunable_policy(`httpd_enable_homedirs && use_samba_home_dirs',`
fs_read_cifs_files(httpd_sys_script_t)
fs_read_cifs_symlinks(httpd_sys_script_t)
-@@ -842,6 +1055,7 @@ optional_policy(`
+@@ -842,6 +1066,7 @@ optional_policy(`
optional_policy(`
mysql_stream_connect(httpd_sys_script_t)
mysql_rw_db_sockets(httpd_sys_script_t)
@@ -12725,7 +12814,7 @@ index e33b9cd..08ec94f 100644
')
optional_policy(`
-@@ -891,11 +1105,33 @@ optional_policy(`
+@@ -891,11 +1116,33 @@ optional_policy(`
tunable_policy(`httpd_enable_cgi && httpd_unified',`
allow httpd_user_script_t httpdcontent:file entrypoint;
@@ -12778,7 +12867,7 @@ index 67c91aa..472ddad 100644
mta_system_content(apcupsd_tmp_t)
')
diff --git a/policy/modules/services/apm.te b/policy/modules/services/apm.te
-index 1c8c27e..c6832b0 100644
+index 1c8c27e..c7cba00 100644
--- a/policy/modules/services/apm.te
+++ b/policy/modules/services/apm.te
@@ -62,6 +62,7 @@ allow apmd_t self:capability { sys_admin sys_nice sys_time kill mknod };
@@ -12824,20 +12913,6 @@ index 1c8c27e..c6832b0 100644
',`
# for ifconfig which is run all the time
kernel_dontaudit_search_sysctl(apmd_t)
-@@ -218,9 +228,13 @@ optional_policy(`
- udev_read_state(apmd_t) #necessary?
- ')
-
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(apmd_t)
- ')
-+', `
-+ permissive apmd_t;
-+')
-
- optional_policy(`
- vbetool_domtrans(apmd_t)
diff --git a/policy/modules/services/arpwatch.te b/policy/modules/services/arpwatch.te
index 0160ba4..f31b5c9 100644
--- a/policy/modules/services/arpwatch.te
@@ -14064,7 +14139,7 @@ index fa82327..7f4ca47 100644
# bind to udp/323
corenet_udp_bind_chronyd_port(chronyd_t)
diff --git a/policy/modules/services/clamav.te b/policy/modules/services/clamav.te
-index 8c36027..0a0f374 100644
+index 8c36027..16598a4 100644
--- a/policy/modules/services/clamav.te
+++ b/policy/modules/services/clamav.te
@@ -80,6 +80,7 @@ manage_files_pattern(clamd_t, clamd_tmp_t, clamd_tmp_t)
@@ -14098,17 +14173,24 @@ index 8c36027..0a0f374 100644
')
########################################
-@@ -182,6 +186,9 @@ allow freshclam_t freshclam_var_log_t:dir setattr;
- allow freshclam_t clamd_var_log_t:dir search_dir_perms;
+@@ -179,9 +183,15 @@ files_pid_filetrans(freshclam_t, clamd_var_run_t, file)
+ # log files (own logfiles only)
+ manage_files_pattern(freshclam_t, freshclam_var_log_t, freshclam_var_log_t)
+ allow freshclam_t freshclam_var_log_t:dir setattr;
+-allow freshclam_t clamd_var_log_t:dir search_dir_perms;
++read_files_pattern(freshclam_t, clamd_var_log_t, clamd_var_log_t)
logging_log_filetrans(freshclam_t, freshclam_var_log_t, file)
+kernel_read_kernel_sysctls(freshclam_t)
+kernel_read_system_state(freshclam_t)
+
++corecmd_exec_shell(freshclam_t)
++corecmd_exec_bin(freshclam_t)
++
corenet_all_recvfrom_unlabeled(freshclam_t)
corenet_all_recvfrom_netlabel(freshclam_t)
corenet_tcp_sendrecv_generic_if(freshclam_t)
-@@ -189,6 +196,7 @@ corenet_tcp_sendrecv_generic_node(freshclam_t)
+@@ -189,6 +199,7 @@ corenet_tcp_sendrecv_generic_node(freshclam_t)
corenet_tcp_sendrecv_all_ports(freshclam_t)
corenet_tcp_sendrecv_clamd_port(freshclam_t)
corenet_tcp_connect_http_port(freshclam_t)
@@ -14116,7 +14198,7 @@ index 8c36027..0a0f374 100644
corenet_sendrecv_http_client_packets(freshclam_t)
dev_read_rand(freshclam_t)
-@@ -207,6 +215,8 @@ miscfiles_read_localization(freshclam_t)
+@@ -207,6 +218,8 @@ miscfiles_read_localization(freshclam_t)
clamav_stream_connect(freshclam_t)
@@ -14125,7 +14207,7 @@ index 8c36027..0a0f374 100644
optional_policy(`
cron_system_entry(freshclam_t, freshclam_exec_t)
')
-@@ -251,6 +261,7 @@ corenet_tcp_sendrecv_clamd_port(clamscan_t)
+@@ -251,6 +264,7 @@ corenet_tcp_sendrecv_clamd_port(clamscan_t)
corenet_tcp_connect_clamd_port(clamscan_t)
kernel_read_kernel_sysctls(clamscan_t)
@@ -15192,7 +15274,7 @@ index 35241ed..cbd01be 100644
+ manage_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t)
')
diff --git a/policy/modules/services/cron.te b/policy/modules/services/cron.te
-index f35b243..939877a 100644
+index f35b243..38a83ea 100644
--- a/policy/modules/services/cron.te
+++ b/policy/modules/services/cron.te
@@ -63,9 +63,12 @@ init_script_file(crond_initrc_exec_t)
@@ -15487,7 +15569,7 @@ index f35b243..939877a 100644
+rw_dirs_pattern(crond_t, user_cron_spool_t, user_cron_spool_t)
read_files_pattern(crond_t, user_cron_spool_t, user_cron_spool_t)
+read_lnk_files_pattern(crond_t, user_cron_spool_t, user_cron_spool_t)
-+allow cronjob_t user_cron_spool_t:file create_lnk_perms;
++allow cronjob_t user_cron_spool_t:file manage_lnk_file_perms;
tunable_policy(`fcron_crond', `
allow crond_t user_cron_spool_t:file manage_file_perms;
@@ -15704,7 +15786,7 @@ index 2a0f1c1..ab82c3c 100644
snmp_dontaudit_write_snmp_var_lib_files(cyrus_t)
snmp_stream_connect(cyrus_t)
diff --git a/policy/modules/services/dbus.if b/policy/modules/services/dbus.if
-index 39e901a..4ab36ba 100644
+index 39e901a..e385f2f 100644
--- a/policy/modules/services/dbus.if
+++ b/policy/modules/services/dbus.if
@@ -42,8 +42,10 @@ template(`dbus_role_template',`
@@ -15775,7 +15857,7 @@ index 39e901a..4ab36ba 100644
domtrans_pattern(system_dbusd_t, $2, $1)
-+ fs_search_cgroup_dirs($1)
++ fs_search_all($1)
+
dbus_system_bus_client($1)
dbus_connect_system_bus($1)
@@ -15914,7 +15996,7 @@ index 8ba9425..d53ee7e 100644
+ gnome_dontaudit_search_config(denyhosts_t)
+')
diff --git a/policy/modules/services/devicekit.te b/policy/modules/services/devicekit.te
-index f231f17..ca3a848 100644
+index f231f17..6cee08f 100644
--- a/policy/modules/services/devicekit.te
+++ b/policy/modules/services/devicekit.te
@@ -75,10 +75,12 @@ manage_dirs_pattern(devicekit_disk_t, devicekit_var_lib_t, devicekit_var_lib_t)
@@ -15942,21 +16024,15 @@ index f231f17..ca3a848 100644
files_manage_isid_type_dirs(devicekit_disk_t)
files_manage_mnt_dirs(devicekit_disk_t)
files_read_etc_files(devicekit_disk_t)
-@@ -178,17 +182,33 @@ optional_policy(`
+@@ -178,17 +182,27 @@ optional_policy(`
virt_manage_images(devicekit_disk_t)
')
-+ifdef(`enforcing',`
+optional_policy(`
+ unconfined_domain(devicekit_t)
+ unconfined_domain(devicekit_power_t)
+ unconfined_domain(devicekit_disk_t)
+')
-+', `
-+ permissive devicekit_t;
-+ permissive devicekit_power_t;
-+ permissive devicekit_disk_t;
-+')
+
########################################
#
@@ -15977,7 +16053,7 @@ index f231f17..ca3a848 100644
manage_dirs_pattern(devicekit_power_t, devicekit_var_lib_t, devicekit_var_lib_t)
manage_files_pattern(devicekit_power_t, devicekit_var_lib_t, devicekit_var_lib_t)
files_var_lib_filetrans(devicekit_power_t, devicekit_var_lib_t, dir)
-@@ -212,12 +232,14 @@ dev_rw_generic_usb_dev(devicekit_power_t)
+@@ -212,12 +226,14 @@ dev_rw_generic_usb_dev(devicekit_power_t)
dev_rw_generic_chr_files(devicekit_power_t)
dev_rw_netcontrol(devicekit_power_t)
dev_rw_sysfs(devicekit_power_t)
@@ -15992,7 +16068,7 @@ index f231f17..ca3a848 100644
term_use_all_terms(devicekit_power_t)
-@@ -225,6 +247,8 @@ auth_use_nsswitch(devicekit_power_t)
+@@ -225,8 +241,11 @@ auth_use_nsswitch(devicekit_power_t)
miscfiles_read_localization(devicekit_power_t)
@@ -16000,8 +16076,11 @@ index f231f17..ca3a848 100644
+
sysnet_read_config(devicekit_power_t)
sysnet_domtrans_ifconfig(devicekit_power_t)
++sysnet_domtrans_dhcpc(devicekit_power_t)
+
+ userdom_read_all_users_state(devicekit_power_t)
-@@ -261,6 +285,10 @@ optional_policy(`
+@@ -261,6 +280,10 @@ optional_policy(`
')
optional_policy(`
@@ -16012,7 +16091,7 @@ index f231f17..ca3a848 100644
hal_domtrans_mac(devicekit_power_t)
hal_manage_log(devicekit_power_t)
hal_manage_pid_dirs(devicekit_power_t)
-@@ -280,5 +308,10 @@ optional_policy(`
+@@ -280,5 +303,10 @@ optional_policy(`
')
optional_policy(`
@@ -16125,7 +16204,7 @@ index e1d7dc5..09f6f30 100644
admin_pattern($1, dovecot_var_run_t)
diff --git a/policy/modules/services/dovecot.te b/policy/modules/services/dovecot.te
-index 14c6a2e..554ee5a 100644
+index 14c6a2e..c771d46 100644
--- a/policy/modules/services/dovecot.te
+++ b/policy/modules/services/dovecot.te
@@ -18,7 +18,7 @@ type dovecot_auth_tmp_t;
@@ -16189,7 +16268,7 @@ index 14c6a2e..554ee5a 100644
postfix_search_spool(dovecot_auth_t)
')
-@@ -253,19 +261,26 @@ allow dovecot_deliver_t self:unix_dgram_socket create_socket_perms;
+@@ -253,19 +261,27 @@ allow dovecot_deliver_t self:unix_dgram_socket create_socket_perms;
allow dovecot_deliver_t dovecot_t:process signull;
@@ -16198,7 +16277,8 @@ index 14c6a2e..554ee5a 100644
allow dovecot_deliver_t dovecot_var_run_t:dir list_dir_perms;
+allow dovecot_deliver_t dovecot_cert_t:dir search_dir_perms;
-+allow dovecot_deliver_t dovecot_var_log_t:dir search_dir_perms;
++
++append_files_pattern(dovecot_deliver_t, dovecot_var_log_t, dovecot_var_log_t)
+
+can_exec(dovecot_deliver_t, dovecot_deliver_exec_t)
+
@@ -16218,7 +16298,7 @@ index 14c6a2e..554ee5a 100644
miscfiles_read_localization(dovecot_deliver_t)
-@@ -302,4 +317,5 @@ tunable_policy(`use_samba_home_dirs',`
+@@ -302,4 +318,5 @@ tunable_policy(`use_samba_home_dirs',`
optional_policy(`
mta_manage_spool(dovecot_deliver_t)
@@ -17519,10 +17599,25 @@ index 24c6253..e72b063 100644
#
# Local hald dccm policy
diff --git a/policy/modules/services/icecast.te b/policy/modules/services/icecast.te
-index a57ffc0..f441c9a 100644
+index a57ffc0..4992511 100644
--- a/policy/modules/services/icecast.te
+++ b/policy/modules/services/icecast.te
-@@ -37,7 +37,10 @@ manage_dirs_pattern(icecast_t, icecast_var_run_t, icecast_var_run_t)
+@@ -5,6 +5,14 @@ policy_module(icecast, 1.0.0)
+ # Declarations
+ #
+
++##
++##
++## Allow icecast to connect to all ports, not just
++## sound ports.
++##
++##
++gen_tunable(icecast_connect_any, false)
++
+ type icecast_t;
+ type icecast_exec_t;
+ init_daemon_domain(icecast_t, icecast_exec_t)
+@@ -37,7 +45,16 @@ manage_dirs_pattern(icecast_t, icecast_var_run_t, icecast_var_run_t)
manage_files_pattern(icecast_t, icecast_var_run_t, icecast_var_run_t)
files_pid_filetrans(icecast_t, icecast_var_run_t, { file dir })
@@ -17530,10 +17625,16 @@ index a57ffc0..f441c9a 100644
+
corenet_tcp_bind_soundd_port(icecast_t)
+corenet_tcp_connect_soundd_port(icecast_t)
++
++tunable_policy(`icecast_connect_any',`
++ corenet_tcp_connect_all_ports(icecast_t)
++ corenet_tcp_bind_all_ports(icecast_t)
++ corenet_sendrecv_all_packets(icecast_t)
++')
# Init script handling
domain_use_interactive_fds(icecast_t)
-@@ -51,5 +54,9 @@ miscfiles_read_localization(icecast_t)
+@@ -51,5 +68,9 @@ miscfiles_read_localization(icecast_t)
sysnet_dns_name_resolve(icecast_t)
optional_policy(`
@@ -18264,8 +18365,27 @@ index db4fd6f..c28a876 100644
')
allow $1 memcached_t:process { ptrace signal_perms };
+diff --git a/policy/modules/services/milter.fc b/policy/modules/services/milter.fc
+index 55a3e2f..613c69d 100644
+--- a/policy/modules/services/milter.fc
++++ b/policy/modules/services/milter.fc
+@@ -1,3 +1,6 @@
++/etc/mail/dkim-milter/keys(/.*)? gen_context(system_u:object_r:dkim_milter_private_key_t,s0)
++
++/usr/sbin/dkim-filter -- gen_context(system_u:object_r:dkim_milter_exec_t,s0)
+ /usr/sbin/milter-greylist -- gen_context(system_u:object_r:greylist_milter_exec_t,s0)
+ /usr/sbin/milter-regex -- gen_context(system_u:object_r:regex_milter_exec_t,s0)
+ /usr/sbin/spamass-milter -- gen_context(system_u:object_r:spamass_milter_exec_t,s0)
+@@ -5,6 +8,7 @@
+ /var/lib/milter-greylist(/.*)? gen_context(system_u:object_r:greylist_milter_data_t,s0)
+ /var/lib/spamass-milter(/.*)? gen_context(system_u:object_r:spamass_milter_state_t,s0)
+
++/var/run/dkim-milter(/.*)? gen_context(system_u:object_r:dkim_milter_data_t,s0)
+ /var/run/milter-greylist(/.*)? gen_context(system_u:object_r:greylist_milter_data_t,s0)
+ /var/run/milter-greylist\.pid -- gen_context(system_u:object_r:greylist_milter_data_t,s0)
+ /var/run/spamass-milter(/.*)? gen_context(system_u:object_r:spamass_milter_data_t,s0)
diff --git a/policy/modules/services/milter.if b/policy/modules/services/milter.if
-index ed1af3c..96cba91 100644
+index ed1af3c..a000225 100644
--- a/policy/modules/services/milter.if
+++ b/policy/modules/services/milter.if
@@ -37,6 +37,8 @@ template(`milter_template',`
@@ -18302,6 +18422,71 @@ index ed1af3c..96cba91 100644
## Manage spamassassin milter state
##
##
+@@ -100,3 +120,22 @@ interface(`milter_manage_spamass_state',`
+ manage_dirs_pattern($1, spamass_milter_state_t, spamass_milter_state_t)
+ manage_lnk_files_pattern($1, spamass_milter_state_t, spamass_milter_state_t)
+ ')
++
++#######################################
++##
++## Delete dkim-milter PID files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`milter_delete_dkim_pid_files',`
++ gen_require(`
++ type dkim_milter_data_t;
++ ')
++
++ files_search_pids($1)
++ delete_files_pattern($1, dkim_milter_data_t, dkim_milter_data_t)
++')
+diff --git a/policy/modules/services/milter.te b/policy/modules/services/milter.te
+index 1b6dea0..6ba48ff 100644
+--- a/policy/modules/services/milter.te
++++ b/policy/modules/services/milter.te
+@@ -9,6 +9,13 @@ policy_module(milter, 1.2.1)
+ attribute milter_domains;
+ attribute milter_data_type;
+
++# support for dkim-milter - domainKeys Identified Mail sender authentication sendmail milter
++milter_template(dkim)
++
++# type for the private key of dkim-milter
++type dkim_milter_private_key_t;
++files_type(dkim_milter_private_key_t)
++
+ # currently-supported milters are milter-greylist, milter-regex and spamass-milter
+ milter_template(greylist)
+ milter_template(regex)
+@@ -20,6 +27,23 @@ milter_template(spamass)
+ type spamass_milter_state_t;
+ files_type(spamass_milter_state_t)
+
++#######################################
++#
++# dkim-milter local policy
++#
++
++allow dkim_milter_t self:capability { kill setgid setuid };
++
++allow dkim_milter_t self:unix_stream_socket create_stream_socket_perms;
++
++read_files_pattern(dkim_milter_t, dkim_milter_private_key_t, dkim_milter_private_key_t)
++
++auth_use_nsswitch(dkim_milter_t)
++
++sysnet_dns_name_resolve(dkim_milter_t)
++
++mta_read_config(dkim_milter_t)
++
+ ########################################
+ #
+ # milter-greylist local policy
diff --git a/policy/modules/services/mock.fc b/policy/modules/services/mock.fc
new file mode 100644
index 0000000..42bb2a3
@@ -19176,7 +19361,7 @@ index 256166a..c526ce8 100644
/usr/lib(64)?/sendmail -- gen_context(system_u:object_r:sendmail_exec_t,s0)
diff --git a/policy/modules/services/mta.if b/policy/modules/services/mta.if
-index 343cee3..01af7c3 100644
+index 343cee3..a9ebda2 100644
--- a/policy/modules/services/mta.if
+++ b/policy/modules/services/mta.if
@@ -220,6 +220,25 @@ interface(`mta_agent_executable',`
@@ -19247,7 +19432,33 @@ index 343cee3..01af7c3 100644
')
########################################
-@@ -474,7 +494,8 @@ interface(`mta_write_config',`
+@@ -420,6 +440,25 @@ interface(`mta_signal_system_mail',`
+
+ ########################################
+ ##
++## Send system mail client a kill signal
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++#
++interface(`mta_kill_system_mail',`
++ gen_require(`
++ type system_mail_t;
++ ')
++
++ allow $1 system_mail_t:process sigkill;
++')
++
++########################################
++##
+ ## Execute sendmail in the caller domain.
+ ##
+ ##
+@@ -474,7 +513,8 @@ interface(`mta_write_config',`
type etc_mail_t;
')
@@ -19257,7 +19468,7 @@ index 343cee3..01af7c3 100644
')
########################################
-@@ -698,7 +719,7 @@ interface(`mta_rw_spool',`
+@@ -698,7 +738,7 @@ interface(`mta_rw_spool',`
files_search_spool($1)
allow $1 mail_spool_t:dir list_dir_perms;
allow $1 mail_spool_t:file setattr;
@@ -19266,7 +19477,7 @@ index 343cee3..01af7c3 100644
read_lnk_files_pattern($1, mail_spool_t, mail_spool_t)
')
-@@ -899,3 +920,43 @@ interface(`mta_rw_user_mail_stream_sockets',`
+@@ -899,3 +939,43 @@ interface(`mta_rw_user_mail_stream_sockets',`
allow $1 user_mail_domain:unix_stream_socket rw_socket_perms;
')
@@ -19846,7 +20057,7 @@ index 8581040..e3c8272 100644
## a domain transition.
##
diff --git a/policy/modules/services/nagios.te b/policy/modules/services/nagios.te
-index da5b33d..0c4ac5b 100644
+index da5b33d..1029389 100644
--- a/policy/modules/services/nagios.te
+++ b/policy/modules/services/nagios.te
@@ -107,13 +107,11 @@ files_read_etc_files(nagios_t)
@@ -19864,8 +20075,12 @@ index da5b33d..0c4ac5b 100644
auth_use_nsswitch(nagios_t)
logging_send_syslog_msg(nagios_t)
-@@ -126,8 +124,6 @@ userdom_dontaudit_search_user_home_dirs(nagios_t)
+@@ -124,10 +122,10 @@ userdom_dontaudit_use_unpriv_user_fds(nagios_t)
+ userdom_dontaudit_search_user_home_dirs(nagios_t)
+
mta_send_mail(nagios_t)
++mta_signal_system_mail(nagios_t)
++mta_kill_system_mail(nagios_t)
optional_policy(`
- netutils_domtrans_ping(nagios_t)
@@ -19873,7 +20088,7 @@ index da5b33d..0c4ac5b 100644
netutils_kill_ping(nagios_t)
')
-@@ -340,6 +336,8 @@ files_read_usr_files(nagios_services_plugin_t)
+@@ -340,6 +338,8 @@ files_read_usr_files(nagios_services_plugin_t)
optional_policy(`
netutils_domtrans_ping(nagios_services_plugin_t)
@@ -19981,7 +20196,7 @@ index 2324d9e..1a1bfe4 100644
+ append_files_pattern($1, NetworkManager_log_t, NetworkManager_log_t)
+')
diff --git a/policy/modules/services/networkmanager.te b/policy/modules/services/networkmanager.te
-index 442cff9..9677236 100644
+index 442cff9..45ecee3 100644
--- a/policy/modules/services/networkmanager.te
+++ b/policy/modules/services/networkmanager.te
@@ -35,7 +35,7 @@ init_system_domain(wpa_cli_t, wpa_cli_exec_t)
@@ -20043,7 +20258,7 @@ index 442cff9..9677236 100644
')
optional_policy(`
-@@ -172,7 +183,7 @@ optional_policy(`
+@@ -172,12 +183,14 @@ optional_policy(`
')
optional_policy(`
@@ -20052,7 +20267,14 @@ index 442cff9..9677236 100644
')
optional_policy(`
-@@ -202,6 +213,13 @@ optional_policy(`
+ dbus_system_domain(NetworkManager_t, NetworkManager_exec_t)
+
++ init_dbus_chat(NetworkManager_t)
++
+ optional_policy(`
+ consolekit_dbus_chat(NetworkManager_t)
+ ')
+@@ -202,6 +215,13 @@ optional_policy(`
')
optional_policy(`
@@ -20066,7 +20288,7 @@ index 442cff9..9677236 100644
iptables_domtrans(NetworkManager_t)
')
-@@ -263,6 +281,7 @@ optional_policy(`
+@@ -263,6 +283,7 @@ optional_policy(`
vpn_kill(NetworkManager_t)
vpn_signal(NetworkManager_t)
vpn_signull(NetworkManager_t)
@@ -20445,7 +20667,7 @@ index 4996f62..975deca 100644
kernel_read_kernel_sysctls(openct_t)
kernel_list_proc(openct_t)
diff --git a/policy/modules/services/openvpn.te b/policy/modules/services/openvpn.te
-index f3d5790..9be673c 100644
+index f3d5790..196f2a2 100644
--- a/policy/modules/services/openvpn.te
+++ b/policy/modules/services/openvpn.te
@@ -24,6 +24,9 @@ files_config_file(openvpn_etc_t)
@@ -20458,6 +20680,15 @@ index f3d5790..9be673c 100644
type openvpn_initrc_exec_t;
init_script_file(openvpn_initrc_exec_t)
+@@ -48,7 +51,7 @@ allow openvpn_t self:unix_dgram_socket { create_socket_perms sendto };
+ allow openvpn_t self:unix_stream_socket { create_stream_socket_perms connectto };
+ allow openvpn_t self:udp_socket create_socket_perms;
+ allow openvpn_t self:tcp_socket server_stream_socket_perms;
+-allow openvpn_t self:tun_socket create;
++allow openvpn_t self:tun_socket { create_socket_perms relabelfrom };
+ allow openvpn_t self:netlink_route_socket rw_netlink_socket_perms;
+
+ can_exec(openvpn_t, openvpn_etc_t)
@@ -58,9 +61,13 @@ read_lnk_files_pattern(openvpn_t, openvpn_etc_t, openvpn_etc_t)
manage_files_pattern(openvpn_t, openvpn_etc_t, openvpn_etc_rw_t)
filetrans_pattern(openvpn_t, openvpn_etc_t, openvpn_etc_rw_t, file)
@@ -20811,10 +21042,10 @@ index 0000000..8ecd276
+')
diff --git a/policy/modules/services/piranha.te b/policy/modules/services/piranha.te
new file mode 100644
-index 0000000..17d6b45
+index 0000000..0a5f27d
--- /dev/null
+++ b/policy/modules/services/piranha.te
-@@ -0,0 +1,216 @@
+@@ -0,0 +1,220 @@
+policy_module(piranha,1.0.0)
+
+########################################
@@ -20932,6 +21163,10 @@ index 0000000..17d6b45
+')
+
+optional_policy(`
++ gnome_dontaudit_search_config(piranha_web_t)
++')
++
++optional_policy(`
+ sasl_connect(piranha_web_t)
+')
+
@@ -21178,7 +21413,7 @@ index 48ff1e8..29c9906 100644
+ allow $1 policykit_auth_t:process signal;
')
diff --git a/policy/modules/services/policykit.te b/policy/modules/services/policykit.te
-index 1e7169d..ab881a1 100644
+index 1e7169d..e731afa 100644
--- a/policy/modules/services/policykit.te
+++ b/policy/modules/services/policykit.te
@@ -24,6 +24,9 @@ init_system_domain(policykit_resolve_t, policykit_resolve_exec_t)
@@ -21262,7 +21497,7 @@ index 1e7169d..ab881a1 100644
-allow policykit_auth_t self:capability setgid;
-allow policykit_auth_t self:process getattr;
-allow policykit_auth_t self:fifo_file rw_file_perms;
-+allow policykit_auth_t self:capability { setgid setuid };
++allow policykit_auth_t self:capability { ipc_lock setgid setuid };
+dontaudit policykit_auth_t self:capability sys_tty_config;
+allow policykit_auth_t self:process { getattr getsched signal };
+allow policykit_auth_t self:fifo_file rw_fifo_file_perms;
@@ -22956,7 +23191,7 @@ index 7dc38d1..91dbe71 100644
+ admin_pattern($1, rgmanager_var_run_t)
+')
diff --git a/policy/modules/services/rgmanager.te b/policy/modules/services/rgmanager.te
-index 00fa514..ce5dbc0 100644
+index 00fa514..9ab1d80 100644
--- a/policy/modules/services/rgmanager.te
+++ b/policy/modules/services/rgmanager.te
@@ -17,6 +17,9 @@ type rgmanager_exec_t;
@@ -23018,20 +23253,6 @@ index 00fa514..ce5dbc0 100644
mysql_domtrans_mysql_safe(rgmanager_t)
mysql_stream_connect(rgmanager_t)
')
-@@ -193,9 +209,13 @@ optional_policy(`
- virt_stream_connect(rgmanager_t)
- ')
-
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(rgmanager_t)
- ')
-+', `
-+ permissive rgmanager_t;
-+')
-
- optional_policy(`
- xen_domtrans_xm(rgmanager_t)
diff --git a/policy/modules/services/rhcs.fc b/policy/modules/services/rhcs.fc
index c2ba53b..b19961e 100644
--- a/policy/modules/services/rhcs.fc
@@ -23848,6 +24069,20 @@ index 6f8e268..7d64285 100644
########################################
#
+diff --git a/policy/modules/services/rwho.te b/policy/modules/services/rwho.te
+index a07b2f4..d78daf4 100644
+--- a/policy/modules/services/rwho.te
++++ b/policy/modules/services/rwho.te
+@@ -55,6 +55,9 @@ files_read_etc_files(rwho_t)
+ init_read_utmp(rwho_t)
+ init_dontaudit_write_utmp(rwho_t)
+
++logging_send_syslog_msg(rwho_t)
++
+ miscfiles_read_localization(rwho_t)
+
+ sysnet_dns_name_resolve(rwho_t)
++
diff --git a/policy/modules/services/samba.fc b/policy/modules/services/samba.fc
index 69a6074..73db5ba 100644
--- a/policy/modules/services/samba.fc
@@ -26231,7 +26466,7 @@ index 7c5d8d8..1a0701b 100644
+')
+
diff --git a/policy/modules/services/virt.te b/policy/modules/services/virt.te
-index 3cce663..8040c74 100644
+index 3cce663..8f0fac9 100644
--- a/policy/modules/services/virt.te
+++ b/policy/modules/services/virt.te
@@ -4,6 +4,7 @@ policy_module(virt, 1.4.0)
@@ -26485,21 +26720,7 @@ index 3cce663..8040c74 100644
')
optional_policy(`
-@@ -385,9 +446,13 @@ optional_policy(`
- udev_read_db(virtd_t)
- ')
-
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(virtd_t)
- ')
-+', `
-+ permissive virtd_t;
-+')
-
- ########################################
- #
-@@ -402,6 +467,19 @@ allow virt_domain self:unix_stream_socket create_stream_socket_perms;
+@@ -402,6 +463,19 @@ allow virt_domain self:unix_stream_socket create_stream_socket_perms;
allow virt_domain self:unix_dgram_socket { create_socket_perms sendto };
allow virt_domain self:tcp_socket create_stream_socket_perms;
@@ -26519,7 +26740,7 @@ index 3cce663..8040c74 100644
append_files_pattern(virt_domain, virt_log_t, virt_log_t)
append_files_pattern(virt_domain, virt_var_lib_t, virt_var_lib_t)
-@@ -422,6 +500,7 @@ corenet_rw_tun_tap_dev(virt_domain)
+@@ -422,6 +496,7 @@ corenet_rw_tun_tap_dev(virt_domain)
corenet_tcp_bind_virt_migration_port(virt_domain)
corenet_tcp_connect_virt_migration_port(virt_domain)
@@ -26527,7 +26748,7 @@ index 3cce663..8040c74 100644
dev_read_rand(virt_domain)
dev_read_sound(virt_domain)
dev_read_urand(virt_domain)
-@@ -429,10 +508,12 @@ dev_write_sound(virt_domain)
+@@ -429,10 +504,12 @@ dev_write_sound(virt_domain)
dev_rw_ksm(virt_domain)
dev_rw_kvm(virt_domain)
dev_rw_qemu(virt_domain)
@@ -26540,7 +26761,7 @@ index 3cce663..8040c74 100644
files_read_usr_files(virt_domain)
files_read_var_files(virt_domain)
files_search_all(virt_domain)
-@@ -440,6 +521,11 @@ files_search_all(virt_domain)
+@@ -440,6 +517,11 @@ files_search_all(virt_domain)
fs_getattr_tmpfs(virt_domain)
fs_rw_anon_inodefs_files(virt_domain)
fs_rw_tmpfs_files(virt_domain)
@@ -26552,7 +26773,7 @@ index 3cce663..8040c74 100644
term_use_all_terms(virt_domain)
term_getattr_pty_fs(virt_domain)
-@@ -457,8 +543,121 @@ optional_policy(`
+@@ -457,8 +539,121 @@ optional_policy(`
')
optional_policy(`
@@ -26829,7 +27050,7 @@ index 6f1e3c7..39c2bb3 100644
+/var/lib/pqsql/\.Xauthority.* -- gen_context(system_u:object_r:xauth_home_t,s0)
+
diff --git a/policy/modules/services/xserver.if b/policy/modules/services/xserver.if
-index da2601a..a5b3186 100644
+index da2601a..4bc9fff 100644
--- a/policy/modules/services/xserver.if
+++ b/policy/modules/services/xserver.if
@@ -19,9 +19,10 @@
@@ -26844,7 +27065,7 @@ index da2601a..a5b3186 100644
')
role $1 types { xserver_t xauth_t iceauth_t };
-@@ -31,7 +32,7 @@ interface(`xserver_restricted_role',`
+@@ -31,12 +32,13 @@ interface(`xserver_restricted_role',`
allow xserver_t $2:shm rw_shm_perms;
domtrans_pattern($2, xserver_exec_t, xserver_t)
@@ -26853,7 +27074,13 @@ index da2601a..a5b3186 100644
allow xserver_t $2:shm rw_shm_perms;
-@@ -45,6 +46,7 @@ interface(`xserver_restricted_role',`
+ allow $2 user_fonts_t:dir list_dir_perms;
+ allow $2 user_fonts_t:file read_file_perms;
++ allow $2 user_fonts_t:lnk_file read_lnk_file_perms;
+
+ allow $2 user_fonts_config_t:dir list_dir_perms;
+ allow $2 user_fonts_config_t:file read_file_perms;
+@@ -45,6 +47,7 @@ interface(`xserver_restricted_role',`
manage_files_pattern($2, user_fonts_cache_t, user_fonts_cache_t)
stream_connect_pattern($2, xserver_tmp_t, xserver_tmp_t, xserver_t)
@@ -26861,7 +27088,7 @@ index da2601a..a5b3186 100644
files_search_tmp($2)
# Communicate via System V shared memory.
-@@ -56,6 +58,10 @@ interface(`xserver_restricted_role',`
+@@ -56,6 +59,10 @@ interface(`xserver_restricted_role',`
domtrans_pattern($2, iceauth_exec_t, iceauth_t)
@@ -26872,7 +27099,7 @@ index da2601a..a5b3186 100644
allow $2 iceauth_home_t:file read_file_perms;
domtrans_pattern($2, xauth_exec_t, xauth_t)
-@@ -71,9 +77,13 @@ interface(`xserver_restricted_role',`
+@@ -71,9 +78,13 @@ interface(`xserver_restricted_role',`
# for when /tmp/.X11-unix is created by the system
allow $2 xdm_t:fd use;
allow $2 xdm_t:fifo_file { getattr read write ioctl };
@@ -26887,7 +27114,7 @@ index da2601a..a5b3186 100644
# Client read xserver shm
allow $2 xserver_t:fd use;
-@@ -89,14 +99,17 @@ interface(`xserver_restricted_role',`
+@@ -89,14 +100,17 @@ interface(`xserver_restricted_role',`
dev_write_misc($2)
# open office is looking for the following
dev_getattr_agp_dev($2)
@@ -26907,15 +27134,18 @@ index da2601a..a5b3186 100644
xserver_xsession_entry_type($2)
xserver_dontaudit_write_log($2)
xserver_stream_connect_xdm($2)
-@@ -148,6 +161,7 @@ interface(`xserver_role',`
+@@ -148,8 +162,10 @@ interface(`xserver_role',`
allow $2 xauth_home_t:file manage_file_perms;
allow $2 xauth_home_t:file { relabelfrom relabelto };
+ mls_xwin_read_to_clearance($2)
manage_dirs_pattern($2, user_fonts_t, user_fonts_t)
manage_files_pattern($2, user_fonts_t, user_fonts_t)
++ allow $2 user_fonts_t:lnk_file read_lnk_file_perms;
relabel_dirs_pattern($2, user_fonts_t, user_fonts_t)
-@@ -197,7 +211,7 @@ interface(`xserver_ro_session',`
+ relabel_files_pattern($2, user_fonts_t, user_fonts_t)
+
+@@ -197,7 +213,7 @@ interface(`xserver_ro_session',`
allow $1 xserver_t:process signal;
# Read /tmp/.X0-lock
@@ -26924,7 +27154,7 @@ index da2601a..a5b3186 100644
# Client read xserver shm
allow $1 xserver_t:fd use;
-@@ -291,12 +305,12 @@ interface(`xserver_user_client',`
+@@ -291,12 +307,12 @@ interface(`xserver_user_client',`
allow $1 self:unix_stream_socket { connectto create_stream_socket_perms };
# Read .Xauthority file
@@ -26940,7 +27170,7 @@ index da2601a..a5b3186 100644
allow $1 xdm_tmp_t:dir search;
allow $1 xdm_tmp_t:sock_file { read write };
dontaudit $1 xdm_t:tcp_socket { read write };
-@@ -355,6 +369,12 @@ template(`xserver_common_x_domain_template',`
+@@ -355,6 +371,12 @@ template(`xserver_common_x_domain_template',`
class x_property all_x_property_perms;
class x_event all_x_event_perms;
class x_synthetic_event all_x_synthetic_event_perms;
@@ -26953,7 +27183,7 @@ index da2601a..a5b3186 100644
')
##############################
-@@ -386,6 +406,15 @@ template(`xserver_common_x_domain_template',`
+@@ -386,6 +408,15 @@ template(`xserver_common_x_domain_template',`
allow $2 xevent_t:{ x_event x_synthetic_event } receive;
# dont audit send failures
dontaudit $2 input_xevent_type:x_event send;
@@ -26969,7 +27199,7 @@ index da2601a..a5b3186 100644
')
#######################################
-@@ -476,11 +505,16 @@ template(`xserver_user_x_domain_template',`
+@@ -476,11 +507,16 @@ template(`xserver_user_x_domain_template',`
xserver_use_user_fonts($2)
xserver_read_xdm_tmp_files($2)
@@ -26986,13 +27216,21 @@ index da2601a..a5b3186 100644
# Client write xserver shm
tunable_policy(`allow_write_xshm',`
allow $2 xserver_t:shm rw_shm_perms;
-@@ -545,6 +579,27 @@ interface(`xserver_domtrans_xauth',`
+@@ -517,6 +553,7 @@ interface(`xserver_use_user_fonts',`
+ # Read per user fonts
+ allow $1 user_fonts_t:dir list_dir_perms;
+ allow $1 user_fonts_t:file read_file_perms;
++ allow $1 user_fonts_t:lnk_file read_lnk_file_perms;
+
+ # Manipulate the global font cache
+ manage_dirs_pattern($1, user_fonts_cache_t, user_fonts_cache_t)
+@@ -545,6 +582,27 @@ interface(`xserver_domtrans_xauth',`
')
domtrans_pattern($1, xauth_exec_t, xauth_t)
-+ifdef(`hide_broken_symptoms', `
-+ dontaudit xauth_t $1:socket_class_set { read write };
-+')
++ ifdef(`hide_broken_symptoms', `
++ dontaudit xauth_t $1:socket_class_set { read write };
++ ')
+')
+
+########################################
@@ -27014,7 +27252,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -598,6 +653,7 @@ interface(`xserver_read_user_xauth',`
+@@ -598,6 +656,7 @@ interface(`xserver_read_user_xauth',`
allow $1 xauth_home_t:file read_file_perms;
userdom_search_user_home_dirs($1)
@@ -27022,7 +27260,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -725,10 +781,12 @@ interface(`xserver_dontaudit_rw_xdm_pipes',`
+@@ -725,10 +784,12 @@ interface(`xserver_dontaudit_rw_xdm_pipes',`
interface(`xserver_stream_connect_xdm',`
gen_require(`
type xdm_t, xdm_tmp_t;
@@ -27035,7 +27273,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -805,7 +863,7 @@ interface(`xserver_read_xdm_pid',`
+@@ -805,7 +866,7 @@ interface(`xserver_read_xdm_pid',`
')
files_search_pids($1)
@@ -27044,7 +27282,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -916,7 +974,7 @@ interface(`xserver_dontaudit_write_log',`
+@@ -916,7 +977,7 @@ interface(`xserver_dontaudit_write_log',`
type xserver_log_t;
')
@@ -27053,7 +27291,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -963,6 +1021,44 @@ interface(`xserver_read_xkb_libs',`
+@@ -963,6 +1024,44 @@ interface(`xserver_read_xkb_libs',`
########################################
##
@@ -27098,7 +27336,7 @@ index da2601a..a5b3186 100644
## Read xdm temporary files.
##
##
-@@ -1072,6 +1168,8 @@ interface(`xserver_domtrans',`
+@@ -1072,6 +1171,8 @@ interface(`xserver_domtrans',`
allow $1 xserver_t:process siginh;
domtrans_pattern($1, xserver_exec_t, xserver_t)
@@ -27107,7 +27345,15 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -1224,9 +1322,20 @@ interface(`xserver_manage_core_devices',`
+@@ -1185,6 +1286,7 @@ interface(`xserver_stream_connect',`
+
+ files_search_tmp($1)
+ stream_connect_pattern($1, xserver_tmp_t, xserver_tmp_t, xserver_t)
++ allow xserver_t $1:shm rw_shm_perms;
+ ')
+
+ ########################################
+@@ -1224,9 +1326,20 @@ interface(`xserver_manage_core_devices',`
class x_device all_x_device_perms;
class x_pointer all_x_pointer_perms;
class x_keyboard all_x_keyboard_perms;
@@ -27128,7 +27374,7 @@ index da2601a..a5b3186 100644
')
########################################
-@@ -1250,3 +1359,329 @@ interface(`xserver_unconfined',`
+@@ -1250,3 +1363,329 @@ interface(`xserver_unconfined',`
typeattribute $1 x_domain;
typeattribute $1 xserver_unconfined_type;
')
@@ -27459,7 +27705,7 @@ index da2601a..a5b3186 100644
+ manage_files_pattern($1, user_fonts_config_t, user_fonts_config_t)
+')
diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te
-index e226da4..50b4a08 100644
+index e226da4..9b9e013 100644
--- a/policy/modules/services/xserver.te
+++ b/policy/modules/services/xserver.te
@@ -35,6 +35,13 @@ gen_tunable(allow_write_xshm, false)
@@ -28067,7 +28313,7 @@ index e226da4..50b4a08 100644
hostname_exec(xdm_t)
')
-@@ -539,20 +761,63 @@ optional_policy(`
+@@ -539,20 +761,64 @@ optional_policy(`
')
optional_policy(`
@@ -28085,6 +28331,7 @@ index e226da4..50b4a08 100644
+optional_policy(`
+ plymouthd_search_spool(xdm_t)
+ plymouthd_exec_plymouth(xdm_t)
++ plymouthd_stream_connect(xdm_t)
+')
+
+optional_policy(`
@@ -28133,7 +28380,7 @@ index e226da4..50b4a08 100644
ifndef(`distro_redhat',`
allow xdm_t self:process { execheap execmem };
-@@ -561,7 +826,6 @@ optional_policy(`
+@@ -561,7 +827,6 @@ optional_policy(`
ifdef(`distro_rhel4',`
allow xdm_t self:process { execheap execmem };
')
@@ -28141,7 +28388,7 @@ index e226da4..50b4a08 100644
optional_policy(`
userhelper_dontaudit_search_config(xdm_t)
-@@ -572,6 +836,10 @@ optional_policy(`
+@@ -572,6 +837,10 @@ optional_policy(`
')
optional_policy(`
@@ -28152,7 +28399,7 @@ index e226da4..50b4a08 100644
xfs_stream_connect(xdm_t)
')
-@@ -596,7 +864,7 @@ allow xserver_t input_xevent_t:x_event send;
+@@ -596,7 +865,7 @@ allow xserver_t input_xevent_t:x_event send;
# execheap needed until the X module loader is fixed.
# NVIDIA Needs execstack
@@ -28161,7 +28408,7 @@ index e226da4..50b4a08 100644
dontaudit xserver_t self:capability chown;
allow xserver_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
allow xserver_t self:fd use;
-@@ -610,6 +878,18 @@ allow xserver_t self:unix_dgram_socket { create_socket_perms sendto };
+@@ -610,6 +879,18 @@ allow xserver_t self:unix_dgram_socket { create_socket_perms sendto };
allow xserver_t self:unix_stream_socket { create_stream_socket_perms connectto };
allow xserver_t self:tcp_socket create_stream_socket_perms;
allow xserver_t self:udp_socket create_socket_perms;
@@ -28180,7 +28427,7 @@ index e226da4..50b4a08 100644
manage_dirs_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
manage_files_pattern(xserver_t, xserver_tmp_t, xserver_tmp_t)
-@@ -629,12 +909,19 @@ manage_files_pattern(xserver_t, xkb_var_lib_t, xkb_var_lib_t)
+@@ -629,12 +910,19 @@ 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)
@@ -28202,7 +28449,7 @@ index e226da4..50b4a08 100644
kernel_read_system_state(xserver_t)
kernel_read_device_sysctls(xserver_t)
-@@ -642,6 +929,7 @@ kernel_read_modprobe_sysctls(xserver_t)
+@@ -642,6 +930,7 @@ kernel_read_modprobe_sysctls(xserver_t)
# Xorg wants to check if kernel is tainted
kernel_read_kernel_sysctls(xserver_t)
kernel_write_proc_files(xserver_t)
@@ -28210,7 +28457,7 @@ index e226da4..50b4a08 100644
# Run helper programs in xserver_t.
corecmd_exec_bin(xserver_t)
-@@ -668,7 +956,6 @@ dev_rw_apm_bios(xserver_t)
+@@ -668,7 +957,6 @@ dev_rw_apm_bios(xserver_t)
dev_rw_agp(xserver_t)
dev_rw_framebuffer(xserver_t)
dev_manage_dri_dev(xserver_t)
@@ -28218,7 +28465,7 @@ index e226da4..50b4a08 100644
dev_create_generic_dirs(xserver_t)
dev_setattr_generic_dirs(xserver_t)
# raw memory access is needed if not using the frame buffer
-@@ -678,8 +965,13 @@ dev_wx_raw_memory(xserver_t)
+@@ -678,8 +966,13 @@ dev_wx_raw_memory(xserver_t)
dev_rw_xserver_misc(xserver_t)
# read events - the synaptics touchpad driver reads raw events
dev_rw_input_dev(xserver_t)
@@ -28232,7 +28479,7 @@ index e226da4..50b4a08 100644
files_read_etc_files(xserver_t)
files_read_etc_runtime_files(xserver_t)
files_read_usr_files(xserver_t)
-@@ -693,8 +985,13 @@ fs_getattr_xattr_fs(xserver_t)
+@@ -693,8 +986,13 @@ fs_getattr_xattr_fs(xserver_t)
fs_search_nfs(xserver_t)
fs_search_auto_mountpoints(xserver_t)
fs_search_ramfs(xserver_t)
@@ -28246,7 +28493,7 @@ index e226da4..50b4a08 100644
selinux_validate_context(xserver_t)
selinux_compute_access_vector(xserver_t)
-@@ -716,11 +1013,14 @@ logging_send_audit_msgs(xserver_t)
+@@ -716,11 +1014,14 @@ logging_send_audit_msgs(xserver_t)
miscfiles_read_localization(xserver_t)
miscfiles_read_fonts(xserver_t)
@@ -28261,7 +28508,7 @@ index e226da4..50b4a08 100644
userdom_search_user_home_dirs(xserver_t)
userdom_use_user_ttys(xserver_t)
-@@ -773,20 +1073,44 @@ optional_policy(`
+@@ -773,12 +1074,28 @@ optional_policy(`
')
optional_policy(`
@@ -28286,17 +28533,12 @@ index e226da4..50b4a08 100644
+ udev_read_db(xserver_t)
+')
+
-+ifdef(`enforcing',`
+optional_policy(`
+ unconfined_domain(xserver_t)
unconfined_domtrans(xserver_t)
')
-+', `
-+ permissive xserver_t;
-+')
- optional_policy(`
- userhelper_search_config(xserver_t)
+@@ -787,6 +1104,10 @@ optional_policy(`
')
optional_policy(`
@@ -28307,7 +28549,7 @@ index e226da4..50b4a08 100644
xfs_stream_connect(xserver_t)
')
-@@ -802,10 +1126,10 @@ allow xserver_t xdm_t:shm rw_shm_perms;
+@@ -802,10 +1123,10 @@ allow xserver_t xdm_t:shm rw_shm_perms;
# NB we do NOT allow xserver_t xdm_var_lib_t:dir, only access to an open
# handle of a file inside the dir!!!
@@ -28320,7 +28562,7 @@ index e226da4..50b4a08 100644
# Label pid and temporary files with derived types.
manage_files_pattern(xserver_t, xdm_tmp_t, xdm_tmp_t)
-@@ -826,6 +1150,13 @@ init_use_fds(xserver_t)
+@@ -826,6 +1147,13 @@ init_use_fds(xserver_t)
# to read ROLE_home_t - examine this in more detail
# (xauth?)
userdom_read_user_home_content_files(xserver_t)
@@ -28334,7 +28576,7 @@ index e226da4..50b4a08 100644
tunable_policy(`use_nfs_home_dirs',`
fs_manage_nfs_dirs(xserver_t)
-@@ -841,11 +1172,14 @@ tunable_policy(`use_samba_home_dirs',`
+@@ -841,11 +1169,14 @@ tunable_policy(`use_samba_home_dirs',`
optional_policy(`
dbus_system_bus_client(xserver_t)
@@ -28351,7 +28593,7 @@ index e226da4..50b4a08 100644
')
optional_policy(`
-@@ -991,3 +1325,33 @@ allow xserver_unconfined_type { x_domain xserver_t }:x_keyboard *;
+@@ -991,3 +1322,33 @@ allow xserver_unconfined_type { x_domain xserver_t }:x_keyboard *;
allow xserver_unconfined_type xextension_type:x_extension *;
allow xserver_unconfined_type { x_domain xserver_t }:x_resource *;
allow xserver_unconfined_type xevent_type:{ x_event x_synthetic_event } *;
@@ -28773,10 +29015,30 @@ index 1c4b1e7..2997dd7 100644
/var/lib/pam_ssh(/.*)? gen_context(system_u:object_r:var_auth_t,s0)
diff --git a/policy/modules/system/authlogin.if b/policy/modules/system/authlogin.if
-index 7fddc24..227958c 100644
+index 7fddc24..395f8f3 100644
--- a/policy/modules/system/authlogin.if
+++ b/policy/modules/system/authlogin.if
-@@ -91,9 +91,12 @@ interface(`auth_use_pam',`
+@@ -57,6 +57,8 @@ interface(`auth_use_pam',`
+ auth_exec_pam($1)
+ auth_use_nsswitch($1)
+
++ init_rw_stream_sockets($1)
++
+ logging_send_audit_msgs($1)
+ logging_send_syslog_msg($1)
+
+@@ -66,6 +68,10 @@ interface(`auth_use_pam',`
+ optional_policy(`
+ consolekit_dbus_chat($1)
+ ')
++
++ optional_policy(`
++ fprintd_dbus_chat($1)
++ ')
+ ')
+
+ optional_policy(`
+@@ -91,9 +97,12 @@ interface(`auth_use_pam',`
interface(`auth_login_pgm_domain',`
gen_require(`
type var_auth_t, auth_cache_t;
@@ -28789,7 +29051,7 @@ index 7fddc24..227958c 100644
domain_subj_id_change_exemption($1)
domain_role_change_exemption($1)
domain_obj_id_change_exemption($1)
-@@ -107,8 +110,10 @@ interface(`auth_login_pgm_domain',`
+@@ -107,8 +116,10 @@ interface(`auth_login_pgm_domain',`
allow $1 self:capability ipc_lock;
allow $1 self:process setkeycreate;
allow $1 self:key manage_key_perms;
@@ -28800,7 +29062,7 @@ index 7fddc24..227958c 100644
manage_files_pattern($1, var_auth_t, var_auth_t)
manage_dirs_pattern($1, auth_cache_t, auth_cache_t)
-@@ -126,6 +131,8 @@ interface(`auth_login_pgm_domain',`
+@@ -126,6 +137,8 @@ interface(`auth_login_pgm_domain',`
files_read_etc_files($1)
fs_list_auto_mountpoints($1)
@@ -28809,7 +29071,7 @@ index 7fddc24..227958c 100644
selinux_get_fs_mount($1)
selinux_validate_context($1)
-@@ -141,6 +148,7 @@ interface(`auth_login_pgm_domain',`
+@@ -141,6 +154,7 @@ interface(`auth_login_pgm_domain',`
mls_process_set_level($1)
mls_fd_share_all_levels($1)
@@ -28817,7 +29079,7 @@ index 7fddc24..227958c 100644
auth_use_pam($1)
init_rw_utmp($1)
-@@ -151,8 +159,38 @@ interface(`auth_login_pgm_domain',`
+@@ -151,8 +165,38 @@ interface(`auth_login_pgm_domain',`
seutil_read_config($1)
seutil_read_default_contexts($1)
@@ -28858,7 +29120,7 @@ index 7fddc24..227958c 100644
')
')
-@@ -365,13 +403,15 @@ interface(`auth_domtrans_chk_passwd',`
+@@ -365,13 +409,15 @@ interface(`auth_domtrans_chk_passwd',`
')
optional_policy(`
@@ -28875,7 +29137,7 @@ index 7fddc24..227958c 100644
')
########################################
-@@ -418,6 +458,7 @@ interface(`auth_run_chk_passwd',`
+@@ -418,6 +464,7 @@ interface(`auth_run_chk_passwd',`
auth_domtrans_chk_passwd($1)
role $2 types chkpwd_t;
@@ -28883,7 +29145,7 @@ index 7fddc24..227958c 100644
')
########################################
-@@ -874,6 +915,26 @@ interface(`auth_exec_pam',`
+@@ -874,6 +921,26 @@ interface(`auth_exec_pam',`
########################################
##
@@ -28910,7 +29172,7 @@ index 7fddc24..227958c 100644
## Manage var auth files. Used by various other applications
## and pam applets etc.
##
-@@ -1500,6 +1561,8 @@ interface(`auth_manage_login_records',`
+@@ -1500,6 +1567,8 @@ interface(`auth_manage_login_records',`
#
interface(`auth_use_nsswitch',`
@@ -28919,7 +29181,7 @@ index 7fddc24..227958c 100644
files_list_var_lib($1)
# read /etc/nsswitch.conf
-@@ -1531,7 +1594,15 @@ interface(`auth_use_nsswitch',`
+@@ -1531,7 +1600,15 @@ interface(`auth_use_nsswitch',`
')
optional_policy(`
@@ -29147,7 +29409,7 @@ index a97a096..dd65c15 100644
/sbin/partprobe -- gen_context(system_u:object_r:fsadm_exec_t,s0)
/sbin/partx -- gen_context(system_u:object_r:fsadm_exec_t,s0)
diff --git a/policy/modules/system/fstools.te b/policy/modules/system/fstools.te
-index a442acc..e8dd9c8 100644
+index a442acc..7cb7582 100644
--- a/policy/modules/system/fstools.te
+++ b/policy/modules/system/fstools.te
@@ -55,6 +55,7 @@ allow fsadm_t swapfile_t:file { rw_file_perms swapon };
@@ -29168,7 +29430,7 @@ index a442acc..e8dd9c8 100644
# Recreate /mnt/cdrom.
files_manage_mnt_dirs(fsadm_t)
# for tune2fs
-@@ -147,12 +151,16 @@ modutils_read_module_deps(fsadm_t)
+@@ -147,7 +151,7 @@ modutils_read_module_deps(fsadm_t)
seutil_read_config(fsadm_t)
@@ -29176,17 +29438,8 @@ index a442acc..e8dd9c8 100644
+term_use_all_terms(fsadm_t)
ifdef(`distro_redhat',`
-+ifdef(`enforcing',`
optional_policy(`
- unconfined_domain(fsadm_t)
- ')
-+', `
-+ permissive fsadm_t;
-+')
- ')
-
- optional_policy(`
-@@ -166,6 +174,14 @@ optional_policy(`
+@@ -166,6 +170,14 @@ optional_policy(`
')
optional_policy(`
@@ -29201,7 +29454,7 @@ index a442acc..e8dd9c8 100644
nis_use_ypbind(fsadm_t)
')
-@@ -175,6 +191,10 @@ optional_policy(`
+@@ -175,6 +187,10 @@ optional_policy(`
')
optional_policy(`
@@ -29320,7 +29573,7 @@ index 9775375..b338481 100644
#
# /var
diff --git a/policy/modules/system/init.if b/policy/modules/system/init.if
-index f6aafe7..7da8294 100644
+index f6aafe7..f28524b 100644
--- a/policy/modules/system/init.if
+++ b/policy/modules/system/init.if
@@ -105,7 +105,11 @@ interface(`init_domain',`
@@ -29444,7 +29697,7 @@ index f6aafe7..7da8294 100644
')
########################################
-@@ -669,12 +733,14 @@ interface(`init_telinit',`
+@@ -669,19 +733,24 @@ interface(`init_telinit',`
type initctl_t;
')
@@ -29460,7 +29713,8 @@ index f6aafe7..7da8294 100644
gen_require(`
type init_t;
')
-@@ -682,6 +748,8 @@ interface(`init_telinit',`
+
++ allow $1 init_t:process signal;
# upstart uses a datagram socket instead of initctl pipe
allow $1 self:unix_dgram_socket create_socket_perms;
allow $1 init_t:unix_dgram_socket sendto;
@@ -29469,7 +29723,7 @@ index f6aafe7..7da8294 100644
')
')
-@@ -754,18 +822,19 @@ interface(`init_script_file_entry_type',`
+@@ -754,18 +823,19 @@ interface(`init_script_file_entry_type',`
#
interface(`init_spec_domtrans_script',`
gen_require(`
@@ -29493,7 +29747,7 @@ index f6aafe7..7da8294 100644
')
')
-@@ -781,23 +850,45 @@ interface(`init_spec_domtrans_script',`
+@@ -781,23 +851,45 @@ interface(`init_spec_domtrans_script',`
#
interface(`init_domtrans_script',`
gen_require(`
@@ -29543,7 +29797,7 @@ index f6aafe7..7da8294 100644
## Execute a init script in a specified domain.
##
##
-@@ -849,8 +940,10 @@ interface(`init_script_file_domtrans',`
+@@ -849,8 +941,12 @@ interface(`init_script_file_domtrans',`
interface(`init_labeled_script_domtrans',`
gen_require(`
type initrc_t;
@@ -29551,10 +29805,12 @@ index f6aafe7..7da8294 100644
')
+ typeattribute $1 initrc_transition_domain;
++ # service script searches all filesystems via mountpoint
++ fs_search_all($1)
domtrans_pattern($1, $2, initrc_t)
files_search_etc($1)
')
-@@ -1338,6 +1431,27 @@ interface(`init_dbus_send_script',`
+@@ -1338,6 +1434,27 @@ interface(`init_dbus_send_script',`
########################################
##
## Send and receive messages from
@@ -29582,7 +29838,7 @@ index f6aafe7..7da8294 100644
## init scripts over dbus.
##
##
-@@ -1637,7 +1751,7 @@ interface(`init_dontaudit_rw_utmp',`
+@@ -1637,7 +1754,7 @@ interface(`init_dontaudit_rw_utmp',`
type initrc_var_run_t;
')
@@ -29591,7 +29847,7 @@ index f6aafe7..7da8294 100644
')
########################################
-@@ -1712,3 +1826,94 @@ interface(`init_udp_recvfrom_all_daemons',`
+@@ -1712,3 +1829,94 @@ interface(`init_udp_recvfrom_all_daemons',`
')
corenet_udp_recvfrom_labeled($1, daemon)
')
@@ -29687,7 +29943,7 @@ index f6aafe7..7da8294 100644
+ allow $1 init_t:unix_stream_socket rw_stream_socket_perms;
+')
diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
-index abab4cf..9f9b812 100644
+index abab4cf..a80b4c7 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -16,6 +16,27 @@ gen_require(`
@@ -30138,10 +30394,11 @@ index abab4cf..9f9b812 100644
optional_policy(`
consolekit_dbus_chat(initrc_t)
-@@ -701,7 +882,12 @@ optional_policy(`
+@@ -701,7 +882,13 @@ optional_policy(`
')
optional_policy(`
++ milter_delete_dkim_pid_files(initrc_t)
+ milter_setattr_all_dirs(initrc_t)
+')
+
@@ -30151,7 +30408,7 @@ index abab4cf..9f9b812 100644
mta_dontaudit_read_spool_symlinks(initrc_t)
')
-@@ -724,6 +910,10 @@ optional_policy(`
+@@ -724,6 +911,10 @@ optional_policy(`
')
optional_policy(`
@@ -30162,7 +30419,7 @@ index abab4cf..9f9b812 100644
postgresql_manage_db(initrc_t)
postgresql_read_config(initrc_t)
')
-@@ -745,6 +935,10 @@ optional_policy(`
+@@ -745,6 +936,10 @@ optional_policy(`
')
optional_policy(`
@@ -30173,7 +30430,7 @@ index abab4cf..9f9b812 100644
fs_write_ramfs_sockets(initrc_t)
fs_search_ramfs(initrc_t)
-@@ -766,8 +960,6 @@ optional_policy(`
+@@ -766,8 +961,6 @@ optional_policy(`
# bash tries ioctl for some reason
files_dontaudit_ioctl_all_pids(initrc_t)
@@ -30182,7 +30439,7 @@ index abab4cf..9f9b812 100644
')
optional_policy(`
-@@ -776,14 +968,21 @@ optional_policy(`
+@@ -776,14 +969,21 @@ optional_policy(`
')
optional_policy(`
@@ -30204,7 +30461,7 @@ index abab4cf..9f9b812 100644
optional_policy(`
ssh_dontaudit_read_server_keys(initrc_t)
-@@ -805,11 +1004,19 @@ optional_policy(`
+@@ -805,11 +1005,19 @@ optional_policy(`
')
optional_policy(`
@@ -30225,7 +30482,7 @@ index abab4cf..9f9b812 100644
ifdef(`distro_redhat',`
# system-config-services causes avc messages that should be dontaudited
-@@ -819,6 +1026,25 @@ optional_policy(`
+@@ -819,6 +1027,25 @@ optional_policy(`
optional_policy(`
mono_domtrans(initrc_t)
')
@@ -30251,7 +30508,7 @@ index abab4cf..9f9b812 100644
')
optional_policy(`
-@@ -844,3 +1070,55 @@ optional_policy(`
+@@ -844,3 +1071,55 @@ optional_policy(`
optional_policy(`
zebra_read_config(initrc_t)
')
@@ -30647,7 +30904,7 @@ index 5c94dfe..59bfb17 100644
########################################
diff --git a/policy/modules/system/iptables.te b/policy/modules/system/iptables.te
-index a3fdcb3..e9bd52a 100644
+index a3fdcb3..bce3aea 100644
--- a/policy/modules/system/iptables.te
+++ b/policy/modules/system/iptables.te
@@ -13,9 +13,6 @@ role system_r types iptables_t;
@@ -30731,6 +30988,14 @@ index a3fdcb3..e9bd52a 100644
')
optional_policy(`
+@@ -124,6 +135,7 @@ optional_policy(`
+
+ optional_policy(`
+ shorewall_rw_lib_files(iptables_t)
++ shorewall_read_tmp_files(iptables_t)
+ ')
+
+ optional_policy(`
diff --git a/policy/modules/system/iscsi.if b/policy/modules/system/iscsi.if
index 663a47b..ad0b864 100644
--- a/policy/modules/system/iscsi.if
@@ -30998,8 +31263,39 @@ index 9df8c4d..1d2236b 100644
+/opt/lgtonmc/bin/.*\.so(\.[0-9])? -- gen_context(system_u:object_r:textrel_shlib_t,s0)
+/opt/google/picasa/.*\.dll -- gen_context(system_u:object_r:textrel_shlib_t,s0)
+/opt/google/picasa/.*\.yti -- gen_context(system_u:object_r:textrel_shlib_t,s0)
+diff --git a/policy/modules/system/libraries.if b/policy/modules/system/libraries.if
+index d97d16d..8b174c8 100644
+--- a/policy/modules/system/libraries.if
++++ b/policy/modules/system/libraries.if
+@@ -46,6 +46,26 @@ interface(`libs_run_ldconfig',`
+
+ ########################################
+ ##
++## Execute ldconfig in the caller domain.
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`libs_exec_ldconfig',`
++ gen_require(`
++ type ldconfig_exec_t;
++ ')
++
++ corecmd_search_bin($1)
++ can_exec($1, ldconfig_exec_t)
++')
++
++########################################
++##
+ ## Use the dynamic link/loader for automatic loading
+ ## of shared libraries.
+ ##
diff --git a/policy/modules/system/libraries.te b/policy/modules/system/libraries.te
-index bf416a4..af2af2d 100644
+index bf416a4..99d7f60 100644
--- a/policy/modules/system/libraries.te
+++ b/policy/modules/system/libraries.te
@@ -61,7 +61,7 @@ allow ldconfig_t self:capability { dac_override sys_chroot };
@@ -31049,17 +31345,11 @@ index bf416a4..af2af2d 100644
puppet_rw_tmp(ldconfig_t)
')
-@@ -141,6 +151,10 @@ optional_policy(`
- rpm_manage_script_tmp_files(ldconfig_t)
- ')
-
-+ifdef(`enforcing',`
+@@ -144,3 +154,4 @@ optional_policy(`
optional_policy(`
unconfined_domain(ldconfig_t)
-+')'
-+, `
-+ permissive ldconfig_t;
')
++
diff --git a/policy/modules/system/locallogin.fc b/policy/modules/system/locallogin.fc
index 7570583..be6a81b 100644
--- a/policy/modules/system/locallogin.fc
@@ -31452,7 +31742,7 @@ index 58bc27f..b4f0663 100644
+ allow $1 clvmd_tmpfs_t:file rw_file_perms;
+')
diff --git a/policy/modules/system/lvm.te b/policy/modules/system/lvm.te
-index 86ef2da..7eb67d1 100644
+index 86ef2da..7f649d5 100644
--- a/policy/modules/system/lvm.te
+++ b/policy/modules/system/lvm.te
@@ -12,6 +12,9 @@ init_daemon_domain(clvmd_t, clvmd_exec_t)
@@ -31476,26 +31766,19 @@ index 86ef2da..7eb67d1 100644
manage_files_pattern(clvmd_t, clvmd_var_run_t, clvmd_var_run_t)
files_pid_filetrans(clvmd_t, clvmd_var_run_t, file)
-@@ -135,9 +142,18 @@ lvm_domtrans(clvmd_t)
- lvm_read_config(clvmd_t)
+@@ -141,6 +148,11 @@ ifdef(`distro_redhat',`
+ ')
- ifdef(`distro_redhat',`
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(clvmd_t)
- ')
-+', `
-+ permissive clvmd_t;
-+')
+ optional_policy(`
++ aisexec_stream_connect(clvmd_t)
++ corosync_stream_connect(clvmd_t)
+')
+
+optional_policy(`
-+ aisexec_stream_connect(clvmd_t)
-+ corosync_stream_connect(clvmd_t)
+ ccs_stream_connect(clvmd_t)
')
- optional_policy(`
-@@ -170,6 +186,7 @@ dontaudit lvm_t self:capability sys_tty_config;
+@@ -170,6 +182,7 @@ dontaudit lvm_t self:capability sys_tty_config;
allow lvm_t self:process { sigchld sigkill sigstop signull signal };
# LVM will complain a lot if it cannot set its priority.
allow lvm_t self:process setsched;
@@ -31503,7 +31786,7 @@ index 86ef2da..7eb67d1 100644
allow lvm_t self:file rw_file_perms;
allow lvm_t self:fifo_file manage_fifo_file_perms;
allow lvm_t self:unix_dgram_socket create_socket_perms;
-@@ -210,12 +227,15 @@ filetrans_pattern(lvm_t, lvm_etc_t, lvm_metadata_t, file)
+@@ -210,12 +223,15 @@ filetrans_pattern(lvm_t, lvm_etc_t, lvm_metadata_t, file)
files_etc_filetrans(lvm_t, lvm_metadata_t, file)
files_search_mnt(lvm_t)
@@ -31519,7 +31802,7 @@ index 86ef2da..7eb67d1 100644
kernel_search_debugfs(lvm_t)
corecmd_exec_bin(lvm_t)
-@@ -242,6 +262,7 @@ dev_dontaudit_getattr_generic_chr_files(lvm_t)
+@@ -242,6 +258,7 @@ dev_dontaudit_getattr_generic_chr_files(lvm_t)
dev_dontaudit_getattr_generic_blk_files(lvm_t)
dev_dontaudit_getattr_generic_pipes(lvm_t)
dev_create_generic_dirs(lvm_t)
@@ -31527,7 +31810,7 @@ index 86ef2da..7eb67d1 100644
domain_use_interactive_fds(lvm_t)
domain_read_all_domains_state(lvm_t)
-@@ -251,8 +272,9 @@ files_read_etc_files(lvm_t)
+@@ -251,8 +268,9 @@ files_read_etc_files(lvm_t)
files_read_etc_runtime_files(lvm_t)
# for when /usr is not mounted:
files_dontaudit_search_isid_type_dirs(lvm_t)
@@ -31538,7 +31821,7 @@ index 86ef2da..7eb67d1 100644
fs_search_auto_mountpoints(lvm_t)
fs_list_tmpfs(lvm_t)
fs_read_tmpfs_symlinks(lvm_t)
-@@ -262,6 +284,7 @@ fs_rw_anon_inodefs_files(lvm_t)
+@@ -262,6 +280,7 @@ fs_rw_anon_inodefs_files(lvm_t)
mls_file_read_all_levels(lvm_t)
mls_file_write_to_clearance(lvm_t)
@@ -31546,26 +31829,19 @@ index 86ef2da..7eb67d1 100644
selinux_get_fs_mount(lvm_t)
selinux_validate_context(lvm_t)
-@@ -303,9 +326,18 @@ ifdef(`distro_redhat',`
- # this is from the initrd:
- files_rw_isid_type_dirs(lvm_t)
+@@ -309,6 +328,11 @@ ifdef(`distro_redhat',`
+ ')
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(lvm_t)
- ')
-+', `
-+ permissive lvm_t;
-+')
+ optional_policy(`
++ aisexec_stream_connect(lvm_t)
++ corosync_stream_connect(lvm_t)
+')
+
+optional_policy(`
-+ aisexec_stream_connect(lvm_t)
-+ corosync_stream_connect(lvm_t)
+ bootloader_rw_tmp_files(lvm_t)
')
- optional_policy(`
-@@ -329,6 +361,10 @@ optional_policy(`
+@@ -329,6 +353,10 @@ optional_policy(`
')
optional_policy(`
@@ -31729,7 +32005,7 @@ index 9c0faab..def8d5a 100644
## loading modules.
##
diff --git a/policy/modules/system/modutils.te b/policy/modules/system/modutils.te
-index 74a4466..f39f39f 100644
+index 74a4466..9abf3b1 100644
--- a/policy/modules/system/modutils.te
+++ b/policy/modules/system/modutils.te
@@ -18,6 +18,7 @@ type insmod_t;
@@ -31764,21 +32040,7 @@ index 74a4466..f39f39f 100644
ifdef(`distro_ubuntu',`
optional_policy(`
-@@ -94,17 +99,21 @@ optional_policy(`
- rpm_manage_script_tmp_files(depmod_t)
- ')
-
-+ifdef(`enforcing',`
- optional_policy(`
- # Read System.map from home directories.
- unconfined_domain(depmod_t)
- ')
-+', `
-+ permissive depmod_t;
-+')
-
- ########################################
- #
+@@ -104,7 +109,7 @@ optional_policy(`
# insmod local policy
#
@@ -31787,7 +32049,7 @@ index 74a4466..f39f39f 100644
allow insmod_t self:process { execmem sigchld sigkill sigstop signull signal };
allow insmod_t self:udp_socket create_socket_perms;
-@@ -125,6 +134,7 @@ kernel_write_proc_files(insmod_t)
+@@ -125,6 +130,7 @@ kernel_write_proc_files(insmod_t)
kernel_mount_debugfs(insmod_t)
kernel_mount_kvmfs(insmod_t)
kernel_read_debugfs(insmod_t)
@@ -31795,7 +32057,7 @@ index 74a4466..f39f39f 100644
# Rules for /proc/sys/kernel/tainted
kernel_read_kernel_sysctls(insmod_t)
kernel_rw_kernel_sysctl(insmod_t)
-@@ -142,6 +152,7 @@ dev_rw_agp(insmod_t)
+@@ -142,6 +148,7 @@ dev_rw_agp(insmod_t)
dev_read_sound(insmod_t)
dev_write_sound(insmod_t)
dev_rw_apm_bios(insmod_t)
@@ -31803,7 +32065,7 @@ index 74a4466..f39f39f 100644
domain_signal_all_domains(insmod_t)
domain_use_interactive_fds(insmod_t)
-@@ -160,11 +171,15 @@ files_write_kernel_modules(insmod_t)
+@@ -160,11 +167,15 @@ files_write_kernel_modules(insmod_t)
fs_getattr_xattr_fs(insmod_t)
fs_dontaudit_use_tmpfs_chr_dev(insmod_t)
@@ -31819,7 +32081,7 @@ index 74a4466..f39f39f 100644
logging_send_syslog_msg(insmod_t)
logging_search_logs(insmod_t)
-@@ -173,8 +188,7 @@ miscfiles_read_localization(insmod_t)
+@@ -173,8 +184,7 @@ miscfiles_read_localization(insmod_t)
seutil_read_file_contexts(insmod_t)
@@ -31829,7 +32091,7 @@ index 74a4466..f39f39f 100644
userdom_dontaudit_search_user_home_dirs(insmod_t)
if( ! secure_mode_insmod ) {
-@@ -191,6 +205,10 @@ optional_policy(`
+@@ -191,6 +201,10 @@ optional_policy(`
')
optional_policy(`
@@ -31840,25 +32102,17 @@ index 74a4466..f39f39f 100644
hal_write_log(insmod_t)
')
-@@ -229,10 +247,18 @@ optional_policy(`
- rpm_rw_pipes(insmod_t)
+@@ -235,6 +249,10 @@ optional_policy(`
')
-+ifdef(`enforcing',`
optional_policy(`
- unconfined_domain(insmod_t)
- unconfined_dontaudit_rw_pipes(insmod_t)
- ')
-+', `
-+ permissive insmod_t;
++ virt_dontaudit_write_pipes(insmod_t)
+')
+
+optional_policy(`
-+ virt_dontaudit_write_pipes(insmod_t)
-+')
-
- optional_policy(`
# cjp: why is this needed:
+ dev_rw_xserver_misc(insmod_t)
+
diff --git a/policy/modules/system/mount.fc b/policy/modules/system/mount.fc
index 72c746e..e3d06fd 100644
--- a/policy/modules/system/mount.fc
@@ -32387,7 +32641,7 @@ index fca6947..a2f7102 100644
+
+userdom_use_user_terminals(showmount_t)
diff --git a/policy/modules/system/raid.te b/policy/modules/system/raid.te
-index 09845c4..5ccaca7 100644
+index 09845c4..2fe5969 100644
--- a/policy/modules/system/raid.te
+++ b/policy/modules/system/raid.te
@@ -30,8 +30,9 @@ allow mdadm_t self:fifo_file rw_fifo_file_perms;
@@ -32401,25 +32655,24 @@ index 09845c4..5ccaca7 100644
kernel_read_system_state(mdadm_t)
kernel_read_kernel_sysctls(mdadm_t)
-@@ -57,6 +58,7 @@ domain_use_interactive_fds(mdadm_t)
+@@ -52,13 +53,16 @@ dev_dontaudit_getattr_generic_blk_files(mdadm_t)
+ dev_read_realtime_clock(mdadm_t)
+ # unfortunately needed for DMI decoding:
+ dev_read_raw_memory(mdadm_t)
++dev_read_generic_files(mdadm_t)
+
+ domain_use_interactive_fds(mdadm_t)
files_read_etc_files(mdadm_t)
files_read_etc_runtime_files(mdadm_t)
+files_dontaudit_getattr_tmpfs_files(mdadm_t)
- fs_search_auto_mountpoints(mdadm_t)
+-fs_search_auto_mountpoints(mdadm_t)
++fs_list_hugetlbfs(mdadm_t)
++fs_list_auto_mountpoints(mdadm_t)
fs_dontaudit_list_tmpfs(mdadm_t)
-@@ -95,6 +97,10 @@ optional_policy(`
- udev_read_db(mdadm_t)
- ')
-+ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(mdadm_t)
- ')
-+', `
-+ permissive mdadm_t;
-+')
+ mls_file_read_all_levels(mdadm_t)
diff --git a/policy/modules/system/selinuxutil.fc b/policy/modules/system/selinuxutil.fc
index 2cc4bda..9e81136 100644
--- a/policy/modules/system/selinuxutil.fc
@@ -32861,7 +33114,7 @@ index 170e2c7..bbaa8cf 100644
+')
+')
diff --git a/policy/modules/system/selinuxutil.te b/policy/modules/system/selinuxutil.te
-index ff5d72d..a0cf928 100644
+index ff5d72d..edee963 100644
--- a/policy/modules/system/selinuxutil.te
+++ b/policy/modules/system/selinuxutil.te
@@ -22,6 +22,9 @@ attribute can_relabelto_binary_policy;
@@ -33102,7 +33355,7 @@ index ff5d72d..a0cf928 100644
# cjp: need a more general way to handle this:
ifdef(`enable_mls',`
# read secadm tmp files
-@@ -498,112 +492,54 @@ ifdef(`enable_mls',`
+@@ -498,112 +492,50 @@ ifdef(`enable_mls',`
userdom_read_user_tmp_files(semanage_t)
')
@@ -33152,18 +33405,12 @@ index ff5d72d..a0cf928 100644
-fs_list_all(setfiles_t)
-fs_search_auto_mountpoints(setfiles_t)
-fs_relabelfrom_noxattr_fs(setfiles_t)
-+init_dontaudit_use_fds(setsebool_t)
-
+-
-mls_file_read_all_levels(setfiles_t)
-mls_file_write_all_levels(setfiles_t)
-mls_file_upgrade(setfiles_t)
-mls_file_downgrade(setfiles_t)
-+# Bug in semanage
-+seutil_domtrans_setfiles(setsebool_t)
-+seutil_manage_file_contexts(setsebool_t)
-+seutil_manage_default_contexts(setsebool_t)
-+seutil_manage_config(setsebool_t)
-
+-
-selinux_validate_context(setfiles_t)
-selinux_compute_access_vector(setfiles_t)
-selinux_compute_create_context(setfiles_t)
@@ -33185,9 +33432,15 @@ index ff5d72d..a0cf928 100644
-logging_send_syslog_msg(setfiles_t)
-
-miscfiles_read_localization(setfiles_t)
--
++init_dontaudit_use_fds(setsebool_t)
+
-seutil_libselinux_linked(setfiles_t)
--
++# Bug in semanage
++seutil_domtrans_setfiles(setsebool_t)
++seutil_manage_file_contexts(setsebool_t)
++seutil_manage_default_contexts(setsebool_t)
++seutil_manage_config(setsebool_t)
+
-userdom_use_all_users_fds(setfiles_t)
-# for config files in a home directory
-userdom_read_user_home_content_files(setfiles_t)
@@ -33241,13 +33494,9 @@ index ff5d72d..a0cf928 100644
')
')
-+ifdef(`enforcing',`
optional_policy(`
- hotplug_use_fds(setfiles_t)
+ unconfined_domain(setfiles_mac_t)
-+')
-+', `
-+ permissive lvm_t;
')
diff --git a/policy/modules/system/setrans.te b/policy/modules/system/setrans.te
index 4ec45a4..4488c6d 100644
@@ -33420,10 +33669,10 @@ index 0000000..fec3374
+')
diff --git a/policy/modules/system/sosreport.te b/policy/modules/system/sosreport.te
new file mode 100644
-index 0000000..593a206
+index 0000000..c15bcea
--- /dev/null
+++ b/policy/modules/system/sosreport.te
-@@ -0,0 +1,158 @@
+@@ -0,0 +1,154 @@
+policy_module(sosreport,1.0.0)
+
+########################################
@@ -33575,13 +33824,9 @@ index 0000000..593a206
+ xserver_stream_connect(sosreport_t)
+')
+
-+ifdef(`enforcing',`
+optional_policy(`
+ unconfined_domain(sosreport_t)
+')
-+', `
-+ permissive sosreport_t;
-+')
diff --git a/policy/modules/system/sysnetwork.fc b/policy/modules/system/sysnetwork.fc
index 726619b..4bb3158 100644
--- a/policy/modules/system/sysnetwork.fc
@@ -34033,7 +34278,7 @@ index 025348a..59bc26b 100644
########################################
diff --git a/policy/modules/system/udev.te b/policy/modules/system/udev.te
-index a054cf5..7cc3698 100644
+index a054cf5..9f316ca 100644
--- a/policy/modules/system/udev.te
+++ b/policy/modules/system/udev.te
@@ -52,6 +52,7 @@ allow udev_t self:unix_dgram_socket sendto;
@@ -34053,7 +34298,15 @@ index a054cf5..7cc3698 100644
kernel_read_system_state(udev_t)
kernel_request_load_module(udev_t)
-@@ -116,10 +117,13 @@ files_exec_etc_files(udev_t)
+@@ -111,15 +112,20 @@ domain_dontaudit_ptrace_all_domains(udev_t) #pidof triggers these
+
+ files_read_usr_files(udev_t)
+ files_read_etc_runtime_files(udev_t)
+-files_read_etc_files(udev_t)
++
++# console_init manages files in /etc/sysconfig
++files_manage_etc_files(udev_t)
+ files_exec_etc_files(udev_t)
files_dontaudit_search_isid_type_dirs(udev_t)
files_getattr_generic_locks(udev_t)
files_search_mnt(udev_t)
@@ -34067,21 +34320,7 @@ index a054cf5..7cc3698 100644
mcs_ptrace_all(udev_t)
-@@ -192,9 +196,13 @@ ifdef(`distro_redhat',`
- # for arping used for static IP addresses on PCMCIA ethernet
- netutils_domtrans(udev_t)
-
-+ ifdef(`enforcing',`
- optional_policy(`
- unconfined_domain(udev_t)
- ')
-+ ', `
-+ permissive udev_t;
-+ ')
- ')
-
- optional_policy(`
-@@ -216,11 +224,16 @@ optional_policy(`
+@@ -216,11 +222,16 @@ optional_policy(`
')
optional_policy(`
@@ -34098,7 +34337,7 @@ index a054cf5..7cc3698 100644
')
optional_policy(`
-@@ -233,6 +246,10 @@ optional_policy(`
+@@ -233,6 +244,10 @@ optional_policy(`
')
optional_policy(`
@@ -34109,7 +34348,7 @@ index a054cf5..7cc3698 100644
lvm_domtrans(udev_t)
')
-@@ -259,6 +276,10 @@ optional_policy(`
+@@ -259,6 +274,10 @@ optional_policy(`
')
optional_policy(`
@@ -34120,7 +34359,7 @@ index a054cf5..7cc3698 100644
openct_read_pid_files(udev_t)
openct_domtrans(udev_t)
')
-@@ -273,6 +294,11 @@ optional_policy(`
+@@ -273,6 +292,11 @@ optional_policy(`
')
optional_policy(`
@@ -34870,10 +35109,10 @@ index f976344..4474379 100644
- ')
-')
diff --git a/policy/modules/system/userdomain.fc b/policy/modules/system/userdomain.fc
-index db75976..9068325 100644
+index db75976..61db6da 100644
--- a/policy/modules/system/userdomain.fc
+++ b/policy/modules/system/userdomain.fc
-@@ -1,4 +1,14 @@
+@@ -1,4 +1,15 @@
HOME_DIR -d gen_context(system_u:object_r:user_home_dir_t,s0-mls_systemhigh)
+HOME_DIR -l gen_context(system_u:object_r:user_home_dir_t,s0-mls_systemhigh)
HOME_DIR/.+ gen_context(system_u:object_r:user_home_t,s0)
@@ -34885,12 +35124,13 @@ index db75976..9068325 100644
+/dev/shm/mono.* gen_context(system_u:object_r:user_tmpfs_t,s0)
+HOME_DIR/bin(/.*)? gen_context(system_u:object_r:home_bin_t,s0)
+HOME_DIR/local/bin(/.*)? gen_context(system_u:object_r:home_bin_t,s0)
++HOME_DIR/Audio(/.*)? gen_context(system_u:object_r:audio_home_t,s0)
+HOME_DIR/Music(/.*)? gen_context(system_u:object_r:audio_home_t,s0)
+HOME_DIR/\.cert(/.*)? gen_context(system_u:object_r:home_cert_t,s0)
+HOME_DIR/\.pki(/.*)? gen_context(system_u:object_r:home_cert_t,s0)
+HOME_DIR/\.gvfs(/.*)? <>
diff --git a/policy/modules/system/userdomain.if b/policy/modules/system/userdomain.if
-index 8b4f6d8..1456a83 100644
+index 8b4f6d8..e1da594 100644
--- a/policy/modules/system/userdomain.if
+++ b/policy/modules/system/userdomain.if
@@ -30,8 +30,9 @@ template(`userdom_base_user_template',`
@@ -36404,6 +36644,15 @@ index 8b4f6d8..1456a83 100644
')
########################################
+@@ -2906,7 +3205,7 @@ interface(`userdom_dontaudit_use_user_ptys',`
+ type user_devpts_t;
+ ')
+
+- dontaudit $1 user_devpts_t:chr_file rw_file_perms;
++ dontaudit $1 user_devpts_t:chr_file rw_inherited_file_perms;
+ ')
+
+ ########################################
@@ -2961,7 +3260,45 @@ interface(`userdom_write_user_tmp_files',`
type user_tmp_t;
')
diff --git a/selinux-policy.spec b/selinux-policy.spec
index 7799e24..1b82efa 100644
--- a/selinux-policy.spec
+++ b/selinux-policy.spec
@@ -19,7 +19,7 @@
%define CHECKPOLICYVER 2.0.21-1
Summary: SELinux policy configuration
Name: selinux-policy
-Version: 3.9.2
+Version: 3.9.3
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Base
@@ -469,6 +469,20 @@ exit 0
%endif
%changelog
+* Thu Aug 31 2010 Dan Walsh 3.9.3-1
+Allow iptables to read shorewall tmp files
+Change chfn and passwd to use auth_use_pam so they can send dbus messages to fpr
+intd
+label vlc as an execmem_exec_t
+Lots of fixes for mozilla_plugin to run google vidio chat
+Allow telepath_msn to execute ldconfig and its own tmp files
+Fix labels on hugepages
+Allow mdadm to read files on /dev
+Remove permissive domains and change back to unconfined
+Allow freshclam to execute shell and bin_t
+Allow devicekit_power to transition to dhcpc
+Add boolean to allow icecast to connect to any port
+
* Thu Aug 31 2010 Dan Walsh 3.9.2-1
- Merge upstream fix of mmap_zero
- Allow mount to write files in debugfs_t
diff --git a/sources b/sources
index 1d0d2b4..3c4a5ef 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f35b66c95c41e4c046727789b361a969 serefpolicy-3.9.2.tgz
+2330fe4b7094df0e0a453856db12e3a4 serefpolicy-3.9.3.tgz