[libvirt] [PATCH] selinux: Avoid label reservations for type = none during restart
Michal Privoznik
mprivozn at redhat.com
Wed Sep 3 16:15:24 UTC 2014
On 10.06.2014 13:42, Shivaprasad G Bhat wrote:
> The problem is libvirt kills the guests during libvirt restart if more than
> guest has security type as none. This is because, libvirt as part of guest-
> reconnect tries to reserve the security labels. In case of type=none, the range
> of security context happen to be same for several guests. During reservation,
> the second attempt to reserve the same range fails and the Guests would be
> killed. The fix is to avoid reserving labels for type = none during libvirt
> restart.
I think the major point is, that for type=none libvirt (according to the
docs) should not generate seclabel at all (either for given security
model or for all models). I'd expect such explanation in commit message.
>
> Signed-off-by: Shivaprasad G Bhat <sbhat at linux.vnet.ibm.com>
> ---
> src/security/security_selinux.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
> index 008c58c..2f8a7f2 100644
> --- a/src/security/security_selinux.c
> +++ b/src/security/security_selinux.c
> @@ -739,7 +739,8 @@ virSecuritySELinuxReserveSecurityLabel(virSecurityManagerPtr mgr,
> virSecurityLabelDefPtr seclabel;
>
> seclabel = virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAME);
> - if (!seclabel || seclabel->type == VIR_DOMAIN_SECLABEL_STATIC)
> + if (!seclabel || seclabel->type == VIR_DOMAIN_SECLABEL_STATIC ||
> + seclabel->type == VIR_DOMAIN_SECLABEL_NONE)
While technically this is okay, I find it nicer if the three conditions
are on separate lines. But maybe I'm too picky O:-)
> return 0;
>
> if (getpidcon_raw(pid, &pctx) == -1) {
>
I feel bad demanding v2, but the commit message needs fixing. But hey -
you're on the right track!
Michal
More information about the libvir-list
mailing list