seccomp: get_v2_action()

parent 46acf530
...@@ -65,6 +65,23 @@ static int parse_config_v1(FILE *f, struct lxc_conf *conf) ...@@ -65,6 +65,23 @@ static int parse_config_v1(FILE *f, struct lxc_conf *conf)
} }
#if HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH #if HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH
static const char *get_action_name(uint32_t action)
{
/* The upper 16 bits indicate the type of the seccomp action. */
switch (action & 0xffff0000) {
case SCMP_ACT_KILL:
return "kill";
case SCMP_ACT_ALLOW:
return "allow";
case SCMP_ACT_TRAP:
return "trap";
case SCMP_ACT_ERRNO(0):
return "errno";
}
return "invalid action";
}
static uint32_t get_v2_default_action(char *line) static uint32_t get_v2_default_action(char *line)
{ {
uint32_t ret_action = -1; uint32_t ret_action = -1;
...@@ -94,41 +111,31 @@ static uint32_t get_v2_default_action(char *line) ...@@ -94,41 +111,31 @@ static uint32_t get_v2_default_action(char *line)
return ret_action; return ret_action;
} }
static const char *get_action_name(uint32_t action)
{
/* The upper 16 bits indicate the type of the seccomp action. */
switch (action & 0xffff0000) {
case SCMP_ACT_KILL:
return "kill";
case SCMP_ACT_ALLOW:
return "allow";
case SCMP_ACT_TRAP:
return "trap";
case SCMP_ACT_ERRNO(0):
return "errno";
}
return "invalid action";
}
static uint32_t get_v2_action(char *line, uint32_t def_action) static uint32_t get_v2_action(char *line, uint32_t def_action)
{ {
char *p = strchr(line, ' '); char *p;
uint32_t ret; uint32_t ret;
p = strchr(line, ' ');
if (!p) if (!p)
return def_action; return def_action;
p++; p++;
while (*p == ' ') while (*p == ' ')
p++; p++;
if (!*p || *p == '#') if (!*p || *p == '#')
return def_action; return def_action;
ret = get_v2_default_action(p); ret = get_v2_default_action(p);
switch(ret) { switch (ret) {
case -2: return -1; case -2:
case -1: return def_action; return -1;
default: return ret; case -1:
return def_action;
} }
return ret;
} }
struct v2_rule_args { struct v2_rule_args {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment