mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
Fix build compat with older libselinux for LXC
Most versions of libselinux do not contain the function selinux_lxc_contexts_path() that the security driver recently started using for LXC. We must add a conditional check for it in configure and then disable the LXC security driver for builds where libselinux lacks this function. * configure.ac: Check for selinux_lxc_contexts_path * src/security/security_selinux.c: Disable LXC security if selinux_lxc_contexts_path() is missing
This commit is contained in:
parent
51bcb09fe9
commit
7ba66ef285
@ -1360,6 +1360,7 @@ else
|
|||||||
fail=0
|
fail=0
|
||||||
AC_CHECK_FUNC([selinux_virtual_domain_context_path], [], [fail=1])
|
AC_CHECK_FUNC([selinux_virtual_domain_context_path], [], [fail=1])
|
||||||
AC_CHECK_FUNC([selinux_virtual_image_context_path], [], [fail=1])
|
AC_CHECK_FUNC([selinux_virtual_image_context_path], [], [fail=1])
|
||||||
|
AC_CHECK_FUNCS([selinux_lxc_contexts_path])
|
||||||
CFLAGS="$old_cflags"
|
CFLAGS="$old_cflags"
|
||||||
LIBS="$old_libs"
|
LIBS="$old_libs"
|
||||||
|
|
||||||
|
@ -127,6 +127,7 @@ err:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_SELINUX_LXC_CONTEXTS_PATH
|
||||||
static int
|
static int
|
||||||
SELinuxLXCInitialize(virSecurityManagerPtr mgr)
|
SELinuxLXCInitialize(virSecurityManagerPtr mgr)
|
||||||
{
|
{
|
||||||
@ -189,6 +190,15 @@ error:
|
|||||||
VIR_FREE(data->content_context);
|
VIR_FREE(data->content_context);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static int
|
||||||
|
SELinuxLXCInitialize(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
virReportSystemError(ENOSYS, "%s",
|
||||||
|
_("libselinux does not support LXC contexts path"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -443,9 +453,12 @@ SELinuxSecurityDriverProbe(const char *virtDriver)
|
|||||||
if (!is_selinux_enabled())
|
if (!is_selinux_enabled())
|
||||||
return SECURITY_DRIVER_DISABLE;
|
return SECURITY_DRIVER_DISABLE;
|
||||||
|
|
||||||
if (virtDriver && STREQ(virtDriver, "LXC") &&
|
if (virtDriver && STREQ(virtDriver, "LXC")) {
|
||||||
!virFileExists(selinux_lxc_contexts_path()))
|
#if HAVE_SELINUX_LXC_CONTEXTS_PATH
|
||||||
return SECURITY_DRIVER_DISABLE;
|
if (!virFileExists(selinux_lxc_contexts_path()))
|
||||||
|
#endif
|
||||||
|
return SECURITY_DRIVER_DISABLE;
|
||||||
|
}
|
||||||
|
|
||||||
return SECURITY_DRIVER_ENABLE;
|
return SECURITY_DRIVER_ENABLE;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user