policy_module(vbetool, 1.10.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_override sys_admin sys_tty_config };
allow vbetool_t self:process execmem;

dev_wx_raw_memory_cond(vbetool_t, allow_raw_memory_access)
dev_read_raw_memory_cond(vbetool_t, allow_raw_memory_access)
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)

miscfiles_read_localization(vbetool_t)

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