[ovs-dev] [PATCH] bridge: Avoid memory leak from RSPAN mirrors in bridge_destroy().

Ben Pfaff blp at nicira.com
Wed Apr 20 17:32:00 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 f5918be..2b8b248 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1696,10 +1696,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.1




More information about the dev mailing list