From: Serge Hallyn Date: Wed, 12 Feb 2014 23:20:22 +0000 (-0600) Subject: seccomp: don't support v2 if seccomp_syscall_resolve_name_arch is not avilable X-Git-Tag: lxc-1.0.0.rc1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b0ae718c84e6f97d658f31466dce77be734dafb;p=thirdparty%2Flxc.git seccomp: don't support v2 if seccomp_syscall_resolve_name_arch is not avilable Also don't use arm arch if not defined This *should* fix build so precise, but I didn't fire one off. I did test that builds with libseccomp2 still work as expected. Signed-off-by: Serge Hallyn Acked-by: Stéphane Graber --- diff --git a/configure.ac b/configure.ac index 21e604618..eb7b32fd7 100644 --- a/configure.ac +++ b/configure.ac @@ -274,6 +274,7 @@ AM_COND_IF([ENABLE_CAP], OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $SECCOMP_CFLAGS" AC_CHECK_TYPES([scmp_filter_ctx], [], [], [[#include ]]) +AC_CHECK_DECLS([seccomp_syscall_resolve_name_arch], [], [], [[#include ]]) CFLAGS="$OLD_CFLAGS" # Configuration examples diff --git a/src/lxc/seccomp.c b/src/lxc/seccomp.c index 4c01be73b..d75defecf 100644 --- a/src/lxc/seccomp.c +++ b/src/lxc/seccomp.c @@ -57,6 +57,7 @@ static int parse_config_v1(FILE *f, struct lxc_conf *conf) return 0; } +#if HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH static void remove_trailing_newlines(char *l) { char *p = l; @@ -109,6 +110,7 @@ static uint32_t get_and_clear_v2_action(char *line, uint32_t def_action) default: return ret; } } +#endif /* * v2 consists of @@ -126,7 +128,7 @@ static uint32_t get_and_clear_v2_action(char *line, uint32_t def_action) */ static int parse_config_v2(FILE *f, char *line, struct lxc_conf *conf) { -#if HAVE_SCMP_FILTER_CTX +#if HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH char *p; int ret; scmp_filter_ctx *ctx = NULL; @@ -189,9 +191,11 @@ static int parse_config_v2(FILE *f, char *line, struct lxc_conf *conf) else if (strcmp(line, "[X86_64]") == 0 || strcmp(line, "[x86_64]") == 0) arch = SCMP_ARCH_X86_64; +#ifdef SCMP_ARCH_ARM else if (strcmp(line, "[arm]") == 0 || strcmp(line, "[ARM]") == 0) arch = SCMP_ARCH_ARM; +#endif else goto bad_arch; if (ctx) {