mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-12 13:17:58 +03:00
security: Grab a reference to virSecurityManager for transactions
This shouldn't be needed per-se. Security manager shouldn't disappear during transactions - it's immutable. However, it doesn't hurt to grab a reference either - transaction code uses it after all. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
72a8b8ecc5
commit
f4d7ca62a4
@ -141,6 +141,7 @@ virSecurityDACChownListFree(void *opaque)
|
||||
VIR_FREE(list->items[i]);
|
||||
}
|
||||
VIR_FREE(list->items);
|
||||
virObjectUnref(list->manager);
|
||||
VIR_FREE(list);
|
||||
}
|
||||
|
||||
@ -511,12 +512,12 @@ virSecurityDACTransactionStart(virSecurityManagerPtr mgr)
|
||||
if (VIR_ALLOC(list) < 0)
|
||||
return -1;
|
||||
|
||||
list->manager = mgr;
|
||||
list->manager = virObjectRef(mgr);
|
||||
|
||||
if (virThreadLocalSet(&chownList, list) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Unable to set thread local variable"));
|
||||
VIR_FREE(list);
|
||||
virSecurityDACChownListFree(list);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -157,6 +157,7 @@ virSecuritySELinuxContextListFree(void *opaque)
|
||||
virSecuritySELinuxContextItemFree(list->items[i]);
|
||||
|
||||
VIR_FREE(list->items);
|
||||
virObjectUnref(list->manager);
|
||||
VIR_FREE(list);
|
||||
}
|
||||
|
||||
@ -1055,12 +1056,12 @@ virSecuritySELinuxTransactionStart(virSecurityManagerPtr mgr)
|
||||
if (VIR_ALLOC(list) < 0)
|
||||
return -1;
|
||||
|
||||
list->manager = mgr;
|
||||
list->manager = virObjectRef(mgr);
|
||||
|
||||
if (virThreadLocalSet(&contextList, list) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Unable to set thread local variable"));
|
||||
VIR_FREE(list);
|
||||
virSecuritySELinuxContextListFree(list);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user