From d68bb70a2d606b7206e78c360cbd4cf62b070493 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 26 Oct 2010 11:17:25 +0100 Subject: [PATCH] Avoid squashing errors during network startup cleanup path When failing to start a virtual network, we have to cleanup, tearing down any iptables rules. If the iptables rules were not present yet though, this raises an error, which squashes the original error we were handling. * src/network/bridge_driver.c: When failing to start a virtual network, don't squash the original error in cleanup --- src/network/bridge_driver.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 87217473ed..0777d85029 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -1171,6 +1171,7 @@ static int networkStartNetworkDaemon(struct network_driver *driver, virNetworkObjPtr network) { int err; + virErrorPtr save_err; if (virNetworkObjIsActive(network)) { networkReportError(VIR_ERR_INTERNAL_ERROR, @@ -1255,7 +1256,12 @@ static int networkStartNetworkDaemon(struct network_driver *driver, } err_delbr2: + save_err = virSaveLastError(); networkRemoveIptablesRules(driver, network); + if (save_err) { + virSetError(save_err); + virFreeError(save_err); + } err_delbr1: if ((err = brSetInterfaceUp(driver->brctl, network->def->bridge, 0))) {