[apparmor] [PATCH] parser: Clean up pivot_root target parsing
John Johansen
john.johansen at canonical.com
Sat Feb 27 00:26:57 UTC 2016
On 02/26/2016 04:07 PM, Tyler Hicks wrote:
> Instead of reusing opt_named_transition and be forced to reconstruct the
> target path when is looks like ":odd:target", create simpler grammer
> rules that have nothing to do with named transitions and namespaces.
>
> Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
Acked-by: John Johansen <john.johansen at canonical.com>
> ---
> parser/parser_yacc.y | 22 ++++++----------------
> 1 file changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/parser/parser_yacc.y b/parser/parser_yacc.y
> index 1f00480..7af78ce 100644
> --- a/parser/parser_yacc.y
> +++ b/parser/parser_yacc.y
> @@ -276,6 +276,7 @@ void add_local_entry(Profile *prof);
> %type <fmode> net_perms
> %type <fmode> opt_net_perm
> %type <unix_entry> unix_rule
> +%type <id> opt_target
> %type <transition> opt_named_transition
> %type <boolean> opt_unsafe
> %type <boolean> opt_file
> @@ -1044,6 +1045,9 @@ expr: TOK_DEFINED TOK_BOOL_VAR
> id_or_var: TOK_ID { $$ = $1; }
> id_or_var: TOK_SET_VAR { $$ = $1; };
>
> +opt_target: /* nothing */ { $$ = NULL; }
> +opt_target: TOK_ARROW id_or_var { $$ = $2; };
> +
> opt_named_transition:
> { /* nothing */
> parse_named_transition_target(&$$, NULL);
> @@ -1242,23 +1246,9 @@ mnt_rule: TOK_UMOUNT opt_conds opt_id TOK_END_OF_RULE
> $$ = do_mnt_rule($2, NULL, NULL, $3, AA_MAY_UMOUNT);
> }
>
> -mnt_rule: TOK_PIVOTROOT opt_conds opt_id opt_named_transition TOK_END_OF_RULE
> +mnt_rule: TOK_PIVOTROOT opt_conds opt_id opt_target TOK_END_OF_RULE
> {
> - char *name = NULL;
> - if ($4.present && $4.ns) {
> - name = (char *) malloc(strlen($4.ns) +
> - strlen($4.name) + 3);
> - if (!name) {
> - PERROR("Memory allocation error\n");
> - exit(1);
> - }
> - sprintf(name, ":%s:%s", $4.ns, $4.name);
> - free($4.ns);
> - free($4.name);
> - } else if ($4.present)
> - name = $4.name;
> -
> - $$ = do_pivot_rule($2, $3, name);
> + $$ = do_pivot_rule($2, $3, $4);
> }
>
> dbus_perm: TOK_VALUE
>
More information about the AppArmor
mailing list