From f1bdcb2be92b5545d5c33485431d7129a8098cd9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Tomko?= Date: Tue, 1 Oct 2013 13:15:12 +0200 Subject: [PATCH] selinux: Only close the selabel_handle once On selinux driver initialization failure (missing/incorrectly formatted contexts file), selabel_handle was closed twice. Introduced by 6159710. --- src/security/security_selinux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index 38de06076b..c408fa8fbc 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -460,6 +460,7 @@ virSecuritySELinuxLXCInitialize(virSecurityManagerPtr mgr) error: # if HAVE_SELINUX_LABEL_H selabel_close(data->label_handle); + data->label_handle = NULL; # endif virConfFree(selinux_conf); VIR_FREE(data->domain_context); @@ -547,6 +548,7 @@ virSecuritySELinuxQEMUInitialize(virSecurityManagerPtr mgr) error: #if HAVE_SELINUX_LABEL_H selabel_close(data->label_handle); + data->label_handle = NULL; #endif VIR_FREE(data->domain_context); VIR_FREE(data->alt_domain_context); @@ -808,7 +810,8 @@ virSecuritySELinuxSecurityDriverClose(virSecurityManagerPtr mgr) return 0; #if HAVE_SELINUX_LABEL_H - selabel_close(data->label_handle); + if (data->label_handle) + selabel_close(data->label_handle); #endif virHashFree(data->mcs); -- 2.39.5