mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 08:24:42 +01:00
This (updated) patch to trunk adds the m flag to the parser language. The m flag explicitly does -not- conflict with px, ux, or ix. It does not add exec mmap as implicit to inherited execs, as it was asserted that the module should do this. I have not fixed up the testcases to match.
This commit is contained in:
parent
97593fb21b
commit
cafbfe7cd3
4 changed files with 13 additions and 3 deletions
|
@ -33,7 +33,8 @@
|
|||
#define POS_KERN_COD_EXEC_INHERIT (POS_KERN_COD_MAY_LINK + 1)
|
||||
#define POS_KERN_COD_EXEC_UNCONSTRAINED (POS_KERN_COD_EXEC_INHERIT + 1)
|
||||
#define POS_KERN_COD_EXEC_PROFILE (POS_KERN_COD_EXEC_UNCONSTRAINED + 1)
|
||||
#define POS_KERN_COD_FILE_MAX POS_KERN_COD_EXEC_PROFILE
|
||||
#define POS_KERN_COD_EXEC_MMAP (POS_KERN_COD_EXEC_PROFILE + 1)
|
||||
#define POS_KERN_COD_FILE_MAX POS_KERN_COD_EXEC_MMAP
|
||||
|
||||
#define POS_KERN_COD_NET_MIN (POS_KERN_COD_FILE_MAX + 1)
|
||||
#define POS_KERN_COD_TCP_CONNECT POS_KERN_COD_NET_MIN
|
||||
|
@ -60,6 +61,7 @@
|
|||
#define KERN_COD_EXEC_INHERIT (0x01 << POS_KERN_COD_EXEC_INHERIT)
|
||||
#define KERN_COD_EXEC_UNCONSTRAINED (0x01 << POS_KERN_COD_EXEC_UNCONSTRAINED)
|
||||
#define KERN_COD_EXEC_PROFILE (0x01 << POS_KERN_COD_EXEC_PROFILE)
|
||||
#define KERN_COD_EXEC_MMAP (0x01 << POS_KERN_COD_EXEC_MMAP)
|
||||
#define KERN_EXEC_MODIFIERS(X) (X & (KERN_COD_EXEC_INHERIT | \
|
||||
KERN_COD_EXEC_UNCONSTRAINED | \
|
||||
KERN_COD_EXEC_PROFILE))
|
||||
|
|
|
@ -107,6 +107,7 @@ struct var_string {
|
|||
#define COD_LINK_CHAR 'l'
|
||||
#define COD_UNCONSTRAINED_CHAR 'u'
|
||||
#define COD_PROFILE_CHAR 'p'
|
||||
#define COD_MMAP_CHAR 'm'
|
||||
|
||||
#define OPTION_ADD 1
|
||||
#define OPTION_REMOVE 2
|
||||
|
|
|
@ -52,7 +52,7 @@ COLON :
|
|||
END_OF_RULE [,]
|
||||
SEPERATOR {UP}
|
||||
RANGE -
|
||||
MODES [RrWwXxIiLlUuPp]
|
||||
MODES [RrWwXxIiLlUuPpMm]
|
||||
WS [[:blank:]]
|
||||
NUMBER [[:digit:]]+
|
||||
ID [^ \t\n"^!]
|
||||
|
|
|
@ -335,9 +335,14 @@ int parse_mode(const char *str_mode)
|
|||
}
|
||||
break;
|
||||
|
||||
case COD_MMAP_CHAR:
|
||||
PDEBUG("Parsing mode: found MMAP\n");
|
||||
mode |= KERN_COD_EXEC_MMAP;
|
||||
break;
|
||||
|
||||
case COD_EXEC_CHAR:
|
||||
PDEBUG("Parsing mode: found EXEC\n");
|
||||
yyerror(_("Invalid mode, 'x' must be preceded by exec qualifier 'i', 'u' or 'p'"));
|
||||
yyerror(_("Invalid mode, 'x' must be preceded by exec qualifier 'i', 'p', or 'u'"));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -518,6 +523,8 @@ void debug_cod_entries(struct cod_entry *list)
|
|||
printf("u");
|
||||
if (item->mode & KERN_COD_EXEC_PROFILE)
|
||||
printf("p");
|
||||
if (item->mode & KERN_COD_EXEC_MMAP)
|
||||
printf("%c", COD_MMAP_CHAR);
|
||||
|
||||
if (item->name)
|
||||
printf("\tName:\t(%s)\n", item->name);
|
||||
|
|
Loading…
Add table
Reference in a new issue