diff mbox series

[ovs-dev,v2] ovn-controller: Cleanup memory in binding_evaluate_port_binding_changes

Message ID 1560264934-21994-1-git-send-email-dceara@redhat.com
State Accepted
Headers show
Series [ovs-dev,v2] ovn-controller: Cleanup memory in binding_evaluate_port_binding_changes | expand

Commit Message

Dumitru Ceara June 11, 2019, 2:55 p.m. UTC
The 'lport_to_iface' and 'egress_ifaces' hashtables were not cleaned up
when checking if port bindings require a recompute.

Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2019-June/048822.html
Reported-by: Daniel Alvarez Sanchez <dalvarez@redhat.com>
Fixes: 9d0b504abdee ("ovn-controller: runtime_data change handler for SB port-binding")
Acked-by: Han Zhou <hzhou8@ebay.com>
Signed-off-by: Dumitru Ceara <dceara@redhat.com>

---
v2: Amend commit log message.
---
 ovn/controller/binding.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Ben Pfaff June 11, 2019, 10:28 p.m. UTC | #1
On Tue, Jun 11, 2019 at 04:55:34PM +0200, Dumitru Ceara wrote:
> The 'lport_to_iface' and 'egress_ifaces' hashtables were not cleaned up
> when checking if port bindings require a recompute.
> 
> Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2019-June/048822.html
> Reported-by: Daniel Alvarez Sanchez <dalvarez@redhat.com>
> Fixes: 9d0b504abdee ("ovn-controller: runtime_data change handler for SB port-binding")
> Acked-by: Han Zhou <hzhou8@ebay.com>
> Signed-off-by: Dumitru Ceara <dceara@redhat.com>
> 
> ---
> v2: Amend commit log message.

Thanks!  Applied to master.
diff mbox series

Patch

diff --git a/ovn/controller/binding.c b/ovn/controller/binding.c
index b62b3da..87d0b6d 100644
--- a/ovn/controller/binding.c
+++ b/ovn/controller/binding.c
@@ -695,6 +695,8 @@  binding_evaluate_port_binding_changes(
         return true;
     }
 
+    bool changed = false;
+
     const struct sbrec_port_binding *binding_rec;
     struct shash lport_to_iface = SHASH_INITIALIZER(&lport_to_iface);
     struct sset egress_ifaces = SSET_INITIALIZER(&egress_ifaces);
@@ -718,10 +720,14 @@  binding_evaluate_port_binding_changes(
             || is_our_chassis(chassis_rec, binding_rec,
                               active_tunnels, &lport_to_iface, local_lports)
             || strcmp(binding_rec->type, "")) {
-            return true;
+            changed = true;
+            break;
         }
     }
-    return false;
+
+    shash_destroy(&lport_to_iface);
+    sset_destroy(&egress_ifaces);
+    return changed;
 }
 
 /* Returns true if the database is all cleaned up, false if more work is