File c1c235eb-nework-clear-cached-error.patch of Package libvirt.16761

commit c1c235eb5c677e9fe890c37c5302db6c4fa84d12
Author: Daniel P. Berrangé <berrange@redhat.com>
Date:   Fri Apr 12 16:53:50 2019 +0100

    network: clear cached error if we successfully create firewall chains
    
    Since:
    
      commit 9f4e35dc73ec9e940aa61bc7c140c2b800218ef3
      Author: Daniel P. Berrangé <berrange@redhat.com>
      Date:   Mon Mar 18 17:31:21 2019 +0000
    
        network: improve error report when firewall chain creation fails
    
    We cache an error when failing to create the top level firewall chains.
    This commit failed to account for fact that we may invoke
    networkPreReloadFirewallRules() many times while libvirtd is running.
    For example when firewalld is restarted.
    
    When this happens the original failure may no longer occurr and we'll
    successfully create our top level chains. We failed to clear the cached
    error resulting in us failing to start virtual networks.
    
    Reviewed-by: Laine Stump <laine@laine.org>
    Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Index: libvirt-5.1.0/src/network/bridge_driver_linux.c
===================================================================
--- libvirt-5.1.0.orig/src/network/bridge_driver_linux.c
+++ libvirt-5.1.0/src/network/bridge_driver_linux.c
@@ -55,6 +55,9 @@ void networkPreReloadFirewallRules(bool
     if (rc < 0) {
         errInitV4 = virSaveLastError();
         virResetLastError();
+    } else {
+        virFreeError(errInitV4);
+        errInitV4 = NULL;
     }
     if (rc)
         created = true;
@@ -63,6 +66,9 @@ void networkPreReloadFirewallRules(bool
     if (rc < 0) {
         errInitV6 = virSaveLastError();
         virResetLastError();
+    } else {
+        virFreeError(errInitV6);
+        errInitV6 = NULL;
     }
     if (rc)
         created = true;
openSUSE Build Service is sponsored by