[ovs-dev] [branch-1.1 25/34] bridge: Avoid memory leak from RSPAN mirrors in bridge_destroy().

Ben Pfaff blp at nicira.com
Fri Apr 29 21:56:56 UTC 2011


Mirrors that output to ports will be destroyed when their output ports are
destroyed, but mirrors that output to VLANs ("RSPAN" mirrors) don't get
automatically destroyed like this and we need to take care of them in a
separate loop.
---
 vswitchd/bridge.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index a95a458..4be0d1e 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1728,10 +1728,14 @@ bridge_destroy(struct bridge *br)
     if (br) {
         struct port *port, *next;
         int error;
+        int i;
 
         HMAP_FOR_EACH_SAFE (port, next, hmap_node, &br->ports) {
             port_destroy(port);
         }
+        for (i = 0; i < MAX_MIRRORS; i++) {
+            mirror_destroy(br->mirrors[i]);
+        }
         list_remove(&br->node);
         ofproto_destroy(br->ofproto);
         error = dpif_delete(br->dpif);
-- 
1.7.4.4




More information about the dev mailing list