diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index e5b1df56e8ef3bdbd7d5fc9f6c68a594cdf4522a..d824aee86d2e51b9c14d36a057f51a6b3d5a9af8 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -1168,13 +1168,12 @@ virCgroupNewMachineSystemd(const char *name, } if (virCgroupAddProcess(*group, pidleader) < 0) { - virErrorPtr saved = virSaveLastError(); + virErrorPtr saved; + + virErrorPreserveLast(&saved); virCgroupRemove(*group); virCgroupFree(group); - if (saved) { - virSetError(saved); - virFreeError(saved); - } + virErrorRestore(&saved); } return 0; @@ -1220,13 +1219,12 @@ virCgroupNewMachineManual(const char *name, goto cleanup; if (virCgroupAddProcess(*group, pidleader) < 0) { - virErrorPtr saved = virSaveLastError(); + virErrorPtr saved; + + virErrorPreserveLast(&saved); virCgroupRemove(*group); virCgroupFree(group); - if (saved) { - virSetError(saved); - virFreeError(saved); - } + virErrorRestore(&saved); } done: diff --git a/src/util/virfirewall.c b/src/util/virfirewall.c index cc1e2b34eaa2809832fb5909036a11c2124cf52d..c2e88ec38221b337c1f62c72973e3b2a420d2955 100644 --- a/src/util/virfirewall.c +++ b/src/util/virfirewall.c @@ -838,7 +838,9 @@ virFirewallApply(virFirewallPtr firewall) if (virFirewallApplyGroup(firewall, i) < 0) { VIR_DEBUG("Rolling back groups up to %zu for %p", i, firewall); size_t first = i; - g_autoptr(virError) saved_error = virSaveLastError(); + virErrorPtr saved_error; + + virErrorPreserveLast(&saved_error); /* * Look at any inheritance markers to figure out @@ -858,7 +860,7 @@ virFirewallApply(virFirewallPtr firewall) virFirewallRollbackGroup(firewall, j); } - virSetError(saved_error); + virErrorRestore(&saved_error); VIR_DEBUG("Done rolling back groups for %p", firewall); goto cleanup; }