diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index e5b1df56e8..d824aee86d 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 cc1e2b34ea..c2e88ec382 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; }