diff --git a/m4/virt-selinux.m4 b/m4/virt-selinux.m4 index 357b758306..a65e978465 100644 --- a/m4/virt-selinux.m4 +++ b/m4/virt-selinux.m4 @@ -1,6 +1,6 @@ dnl The libselinux.so library dnl -dnl Copyright (C) 2012-2014 Red Hat, Inc. +dnl Copyright (C) 2012-2014, 2016 Red Hat, Inc. dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public @@ -41,6 +41,21 @@ int setcon(char *context); AC_DEFINE_UNQUOTED([VIR_SELINUX_CTX_CONST], [$lv_cv_setcon_const], [Define to empty or 'const' depending on how SELinux qualifies its security context parameters]) + # ...and again for 2.5 + AC_CACHE_CHECK([for selinux selabel_open parameter type], + [lv_cv_selabel_open_const], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +struct selabel_handle *selabel_open(unsigned, struct selinux_opt *, unsigned); + ]])], + [lv_cv_selabel_open_const=''], + [lv_cv_selabel_open_const='const'])]) + AC_DEFINE_UNQUOTED([VIR_SELINUX_OPEN_CONST], [$lv_cv_selabel_open_const], + [Define to empty or 'const' depending on how SELinux qualifies its + selabel_open parameter]) AC_MSG_CHECKING([SELinux mount point]) if test "$with_selinux_mount" = "check" || test -z "$with_selinux_mount"; then diff --git a/tests/securityselinuxhelper.c b/tests/securityselinuxhelper.c index 1252c15d32..2cfa43f11f 100644 --- a/tests/securityselinuxhelper.c +++ b/tests/securityselinuxhelper.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2013 Red Hat, Inc. + * Copyright (C) 2011-2013, 2016 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -60,6 +60,7 @@ static const char *(*realselinux_lxc_contexts_path)(void); #if HAVE_SELINUX_LABEL_H static struct selabel_handle *(*realselabel_open)(unsigned int backend, + VIR_SELINUX_OPEN_CONST struct selinux_opt *opts, unsigned nopts); static void (*realselabel_close)(struct selabel_handle *handle); @@ -304,9 +305,10 @@ const char *selinux_lxc_contexts_path(void) #endif #if HAVE_SELINUX_LABEL_H -struct selabel_handle *selabel_open(unsigned int backend, - struct selinux_opt *opts, - unsigned nopts) +struct selabel_handle * +selabel_open(unsigned int backend, + VIR_SELINUX_OPEN_CONST struct selinux_opt *opts, + unsigned nopts) { char *fake_handle;