platform_external_selinux/secilc
James Carter 4a60fd78d2 secilc/test: Add test for anonymous args
CIL has rules that allow names to be assigned to certain objects
like MLS category sets, MLS levels, MLS ranges, IP addresses, and
class permission sets. These objects can also be named as parameters
for a macro. A call may pass in a name for one of these objects, but
it also may pass in one of the actual objects. These objects are
referred as anonymous arguments.

Add CIL policy that can be used to test whether or not anonymous
arguments are being handled properly in macros. Also test the
equivalent named arguments to help determine if the problem is with
that argument type or just with an anonymous argument of that type.

The anonymouse arguments that are tested are categoryset, level,
levelrange, ipaddr, and classpermission.

Signed-off-by: James Carter <jwcart2@gmail.com>
Acked-by: Nicolas Iooss <nicolas.iooss@m4x.org>
2021-06-22 09:33:28 -04:00
..
docs secilc/docs: Relocate and reword macro call name resolution order 2021-06-04 10:23:23 -04:00
test secilc/test: Add test for anonymous args 2021-06-22 09:33:28 -04:00
.gitignore secilc: Create the new program called secil2tree to write out CIL AST 2021-04-21 21:45:31 +02:00
COPYING Fix many misspellings 2019-09-18 22:47:35 +02:00
Makefile secilc: Create the new program called secil2tree to write out CIL AST 2021-04-21 21:45:31 +02:00
README secilc: update dependency information and man page creation 2016-01-08 09:38:40 -05:00
secil2conf.8.xml secilc: Add secil2conf which creates a policy.conf from CIL policy 2016-11-30 10:18:19 -05:00
secil2conf.c secilc: Add options to control the expansion of attributes 2017-04-12 14:33:55 -04:00
secil2tree.8.xml secilc: Create the new program called secil2tree to write out CIL AST 2021-04-21 21:45:31 +02:00
secil2tree.c secilc: Create the new program called secil2tree to write out CIL AST 2021-04-21 21:45:31 +02:00
secilc.8.xml secilc: add flag to enable policy optimization 2019-06-25 10:11:00 -04:00
secilc.c secilc.c: Don't fail if input file is empty 2021-04-14 15:14:59 -04:00
VERSION Update VERSIONs to 3.2 for release. 2021-03-04 16:42:59 +01:00

SELinux Common Intermediate Language (CIL) Compiler

INTRODUCTION

	The SELinux CIL Compiler is a compiler that converts the CIL language as
	described on the CIL design wiki into a kernel binary policy file.
	Please see the CIL Design Wiki at:
	http://github.com/SELinuxProject/cil/wiki/
	for more information about the goals and features on the CIL language.

DEPENDENCIES

	gcc >= 4.5.1
	libsepol >= 2.5


BUILD STEPS

	Run "make" with one of the following targets:

	make
		Build the CIL compiler (secilc).

	make test
		Pass a sample policy to test with the compiler.

	make install
		Install the secilc compiler and man page to disk.

	make clean
		Remove temporary build files.

	make man
		Build the secilc man page.

	make bare
		Remove temporary build files and compile binaries.


USAGE

	Execute 'secilc' with any number of CIL files as arguments. A binary policy and
	file_contexts file will be created.

	Use the '--help' option for more details.


DOCUMENTATION

	There is a github markdown CIL Reference Guide in the docs directory. To
	view the table of contents, see README.md in the docs directory.

	To convert the github markdown content to HTML and PDF, change to the docs
	directory and run:
		make

	The documents will be located in the docs/html and docs/pdf directories.

	To build the html and pdf, the pandoc package is required.

KNOWN ISSUES

	- Blocks inside of macros causes undefined behavior

	- Policy must be well formed. For example, invalid usage of
	  sensitivities/categories/levels may create an unloaded binary

	- Recursive limits are not handled