diff --git a/checkpolicy/policy_parse.y b/checkpolicy/policy_parse.y index 49ac15f..1e3ef6f 100644 --- a/checkpolicy/policy_parse.y +++ b/checkpolicy/policy_parse.y @@ -353,7 +353,7 @@ cond_rule_def : cond_transition_def | require_block { $$ = NULL; } ; -cond_transition_def : TYPE_TRANSITION names names ':' names identifier filename ';' +cond_transition_def : TYPE_TRANSITION names names ':' names identifier '\"' filename '\"' ';' { $$ = define_cond_filename_trans() ; if ($$ == COND_ERR) return -1;} | TYPE_TRANSITION names names ':' names identifier ';' @@ -391,7 +391,7 @@ cond_dontaudit_def : DONTAUDIT names names ':' names names ';' { $$ = define_cond_te_avtab(AVRULE_DONTAUDIT); if ($$ == COND_ERR) return -1; } ; -transition_def : TYPE_TRANSITION names names ':' names identifier filename ';' +transition_def : TYPE_TRANSITION names names ':' names identifier '\"' filename '\"' ';' {if (define_filename_trans()) return -1; } | TYPE_TRANSITION names names ':' names identifier ';' {if (define_compute_type(AVRULE_TRANSITION)) return -1;} diff --git a/checkpolicy/policy_scan.l b/checkpolicy/policy_scan.l index a61e0db..2ba5971 100644 --- a/checkpolicy/policy_scan.l +++ b/checkpolicy/policy_scan.l @@ -227,7 +227,6 @@ PERMISSIVE { return(PERMISSIVE); } {digit}{1,3}(\.{digit}{1,3}){3} { return(IPV4_ADDR); } {hexval}{0,4}":"{hexval}{0,4}":"({hexval}|[:.])* { return(IPV6_ADDR); } {digit}+(\.({alnum}|[_.])*)? { return(VERSION_IDENTIFIER); } -\"({alnum}|[_\.\-])+\" { return(FILENAME); } {alnum}* { return(FILENAME); } \.({alnum}|[_\.\-])* { return(FILENAME); } {letter}+([-_\.]|{alnum})+ { return(FILENAME); } @@ -253,6 +252,7 @@ PERMISSIVE { return(PERMISSIVE); } "-" | "." | "]" | +"\"" | "~" | "*" { return(yytext[0]); } . { yywarn("unrecognized character");}