[apparmor] [PATCH 05/13] Require matched mode strings to terminate
Kees Cook
kees at ubuntu.com
Tue Feb 14 19:12:28 UTC 2012
On Tue, Feb 14, 2012 at 09:32:27AM -0800, John Johansen wrote:
> mode strings overlap with other potential commands, or strings, and as
> currently written can be match as a leading substring of an ID. Eliminate
> the leading substring case by requiring that for a mode string to be
> recognized it must be terminated by whitespace, eol, eof, or
> comma (end of rule).
>
> The other cases where modes string overlap are ambiguous and the ID should
> be quoted to remove the ambiguity.
>
> Signed-off-by: John Johansen <john.johansen at canonical.com>
> ---
> parser/parser_lex.l | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/parser/parser_lex.l b/parser/parser_lex.l
> index 8f549c8..e4f8f66 100644
> --- a/parser/parser_lex.l
> +++ b/parser/parser_lex.l
> @@ -175,9 +175,9 @@ SLASH \/
> COLON :
> END_OF_RULE [,]
> RANGE -
> -MODE_CHARS ([RrWwaLlMmkXx])|(([Pp]|[Cc])[Xx])|(([Pp]|[Cc])?([IiUu])[Xx])
> -MODES {MODE_CHARS}+
> WS [[:blank:]]
> +MODE_CHARS ([RrWwaLlMmkXx])|(([Pp]|[Cc])[Xx])|(([Pp]|[Cc])?([IiUu])[Xx])
> +MODES ({MODE_CHARS}+)
> NUMBER [[:digit:]]+
Why the relocation churn here? Better to just change only the MODES
definition for better change readability.
> ID_CHARS [^ \t\n"!,]
> @@ -540,7 +540,7 @@ LT_EQUAL <=
> return TOK_ID;
> }
>
> -{MODES} {
> +({MODES})/([[:space:],]) {
> DUMP_PREPROCESS;
> yylval.mode = strdup(yytext);
> PDEBUG("Found modes: %s\n", yylval.mode);
Otherwise, looks fine.
-Kees
--
Kees Cook
More information about the AppArmor
mailing list