]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix crash in DAC driver with no seclabels
authorJán Tomko <jtomko@redhat.com>
Mon, 19 May 2014 11:50:52 +0000 (13:50 +0200)
committerJán Tomko <jtomko@redhat.com>
Mon, 19 May 2014 13:31:42 +0000 (15:31 +0200)
With dynamic_ownership = 1 but no seclabels, RestoreChardevLabel
dereferences the NULL seclabel when checking if norelabel is set.

Remove this check, since it is already done in RestoreSecurityAllLabel
and if norelabel is set, RestoreChardevLabel is never called.

src/security/security_dac.c

index 05303e745d94ed192203ab237571ea1e1d944b3e..00f47cbde95c28bb435f280b9a08fc130077adf8 100644 (file)
@@ -768,22 +768,19 @@ virSecurityDACSetChardevLabel(virSecurityManagerPtr mgr,
 
 static int
 virSecurityDACRestoreChardevLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
-                                  virDomainDefPtr def,
+                                  virDomainDefPtr def ATTRIBUTE_UNUSED,
                                   virDomainChrDefPtr dev,
                                   virDomainChrSourceDefPtr dev_source)
 {
-    virSecurityLabelDefPtr seclabel;
     virSecurityDeviceLabelDefPtr chr_seclabel = NULL;
     char *in = NULL, *out = NULL;
     int ret = -1;
 
-    seclabel = virDomainDefGetSecurityLabelDef(def, SECURITY_DAC_NAME);
-
     if (dev)
         chr_seclabel = virDomainChrDefGetSecurityLabelDef(dev,
                                                           SECURITY_DAC_NAME);
 
-    if (seclabel->norelabel || (chr_seclabel && chr_seclabel->norelabel))
+    if (chr_seclabel && chr_seclabel->norelabel)
         return 0;
 
     switch ((enum virDomainChrType) dev_source->type) {