|
Dan Walsh |
2cb151 |
policy_parse.y | 14 ++++++++++----
|
|
Dan Walsh |
2cb151 |
policy_scan.l | 1 +
|
|
Dan Walsh |
2cb151 |
2 files changed, 11 insertions(+), 4 deletions(-)
|
|
Dan Walsh |
2cb151 |
|
|
Dan Walsh |
2cb151 |
diff --git a/checkpolicy/policy_parse.y b/checkpolicy/policy_parse.y
|
|
Dan Walsh |
2cb151 |
index 8d1bc37..0777238 100644
|
|
Dan Walsh |
2cb151 |
--- a/checkpolicy/policy_parse.y
|
|
Dan Walsh |
2cb151 |
+++ b/checkpolicy/policy_parse.y
|
|
Dan Walsh |
2cb151 |
@@ -138,6 +138,7 @@ typedef int (* require_func_t)();
|
|
Dan Walsh |
2cb151 |
%token MODULE VERSION_IDENTIFIER REQUIRE OPTIONAL
|
|
Dan Walsh |
2cb151 |
%token POLICYCAP
|
|
Dan Walsh |
2cb151 |
%token PERMISSIVE
|
|
Dan Walsh |
2cb151 |
+%token FILESYSTEM
|
|
Dan Walsh |
2cb151 |
|
|
Dan Walsh |
2cb151 |
%left OR
|
|
Dan Walsh |
2cb151 |
%left XOR
|
|
Dan Walsh |
2cb151 |
@@ -637,7 +638,7 @@ opt_fs_uses : fs_uses
|
|
Dan Walsh |
2cb151 |
fs_uses : fs_use_def
|
|
Dan Walsh |
2cb151 |
| fs_uses fs_use_def
|
|
Dan Walsh |
2cb151 |
;
|
|
Dan Walsh |
2cb151 |
-fs_use_def : FSUSEXATTR identifier security_context_def ';'
|
|
Dan Walsh |
2cb151 |
+fs_use_def : FSUSEXATTR filesystem security_context_def ';'
|
|
Dan Walsh |
2cb151 |
{if (define_fs_use(SECURITY_FS_USE_XATTR)) return -1;}
|
|
Dan Walsh |
2cb151 |
| FSUSETASK identifier security_context_def ';'
|
|
Dan Walsh |
2cb151 |
{if (define_fs_use(SECURITY_FS_USE_TASK)) return -1;}
|
|
Dan Walsh |
2cb151 |
@@ -650,11 +651,11 @@ opt_genfs_contexts : genfs_contexts
|
|
Dan Walsh |
2cb151 |
genfs_contexts : genfs_context_def
|
|
Dan Walsh |
2cb151 |
| genfs_contexts genfs_context_def
|
|
Dan Walsh |
2cb151 |
;
|
|
Dan Walsh |
2cb151 |
-genfs_context_def : GENFSCON identifier path '-' identifier security_context_def
|
|
Dan Walsh |
2cb151 |
+genfs_context_def : GENFSCON filesystem path '-' identifier security_context_def
|
|
Dan Walsh |
2cb151 |
{if (define_genfs_context(1)) return -1;}
|
|
Dan Walsh |
2cb151 |
- | GENFSCON identifier path '-' '-' {insert_id("-", 0);} security_context_def
|
|
Dan Walsh |
2cb151 |
+ | GENFSCON filesystem path '-' '-' {insert_id("-", 0);} security_context_def
|
|
Dan Walsh |
2cb151 |
{if (define_genfs_context(1)) return -1;}
|
|
Dan Walsh |
2cb151 |
- | GENFSCON identifier path security_context_def
|
|
Dan Walsh |
2cb151 |
+ | GENFSCON filesystem path security_context_def
|
|
Dan Walsh |
2cb151 |
{if (define_genfs_context(0)) return -1;}
|
|
Dan Walsh |
2cb151 |
;
|
|
Dan Walsh |
2cb151 |
ipv4_addr_def : IPV4_ADDR
|
|
Dan Walsh |
2cb151 |
@@ -728,6 +729,11 @@ nested_id_element : identifier | '-' { if (insert_id("-", 0)) return -1; }
|
|
Dan Walsh |
2cb151 |
identifier : IDENTIFIER
|
|
Dan Walsh |
2cb151 |
{ if (insert_id(yytext,0)) return -1; }
|
|
Dan Walsh |
2cb151 |
;
|
|
Dan Walsh |
2cb151 |
+filesystem : FILESYSTEM
|
|
Dan Walsh |
2cb151 |
+ { if (insert_id(yytext,0)) return -1; }
|
|
Dan Walsh |
2cb151 |
+ | IDENTIFIER
|
|
Dan Walsh |
2cb151 |
+ { if (insert_id(yytext,0)) return -1; }
|
|
Dan Walsh |
2cb151 |
+ ;
|
|
Dan Walsh |
2cb151 |
path : PATH
|
|
Dan Walsh |
2cb151 |
{ if (insert_id(yytext,0)) return -1; }
|
|
Dan Walsh |
2cb151 |
;
|
|
Dan Walsh |
2cb151 |
diff --git a/checkpolicy/policy_scan.l b/checkpolicy/policy_scan.l
|
|
Dan Walsh |
2cb151 |
index 48128a8..65aff8d 100644
|
|
Dan Walsh |
2cb151 |
--- a/checkpolicy/policy_scan.l
|
|
Dan Walsh |
2cb151 |
+++ b/checkpolicy/policy_scan.l
|
|
Dan Walsh |
2cb151 |
@@ -217,6 +217,7 @@ permissive |
|
|
Dan Walsh |
2cb151 |
PERMISSIVE { return(PERMISSIVE); }
|
|
Dan Walsh |
2cb151 |
"/"({alnum}|[_\.\-/])* { return(PATH); }
|
|
Dan Walsh |
2cb151 |
{letter}({alnum}|[_\-])*([\.]?({alnum}|[_\-]))* { return(IDENTIFIER); }
|
|
Dan Walsh |
2cb151 |
+{alnum}*{letter}{alnum}* { return(FILESYSTEM); }
|
|
Dan Walsh |
2cb151 |
{digit}+|0x{hexval}+ { return(NUMBER); }
|
|
Dan Walsh |
2cb151 |
{digit}{1,3}(\.{digit}{1,3}){3} { return(IPV4_ADDR); }
|
|
Dan Walsh |
2cb151 |
{hexval}{0,4}":"{hexval}{0,4}":"({hexval}|[:.])* { return(IPV6_ADDR); }
|
|
Dan Walsh |
2cb151 |
|