policy_module(vbetool, 1.7.0)

########################################
#
# Declarations
#

## <desc>
##	<p>
##	Determine whether attempts by
##	vbetool to mmap low regions should
##	be silently blocked.
##	</p>
## </desc>
gen_tunable(vbetool_mmap_zero_ignore, false)

attribute_role vbetool_roles;

type vbetool_t;
type vbetool_exec_t;
init_system_domain(vbetool_t, vbetool_exec_t)
role vbetool_roles types vbetool_t;

########################################
#
# Local policy
#

allow vbetool_t self:capability { dac_read_search  sys_tty_config sys_admin };
#allow vbetool_t self:capability2 compromise_kernel;
allow vbetool_t self:process execmem;

dev_wx_raw_memory(vbetool_t)
dev_read_raw_memory(vbetool_t)
dev_rwx_zero(vbetool_t)
dev_rw_sysfs(vbetool_t)
dev_rw_xserver_misc(vbetool_t)
dev_rw_mtrr(vbetool_t)

domain_mmap_low(vbetool_t)

mls_file_read_all_levels(vbetool_t)
mls_file_write_all_levels(vbetool_t)

term_use_unallocated_ttys(vbetool_t)


tunable_policy(`vbetool_mmap_zero_ignore',`
	dontaudit vbetool_t self:memprotect mmap_zero;
')

optional_policy(`
	hal_rw_pid_files(vbetool_t)
	hal_write_log(vbetool_t)
	hal_dontaudit_append_lib_files(vbetool_t)
')
