From: Ben Pfaff Date: Mon, 11 Apr 2011 18:22:39 +0000 (-0700) Subject: bridge: Avoid memory leak from RSPAN mirrors in bridge_destroy(). X-Git-Tag: v1.1.1~19 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=4896c8a0d7e7f6edd1995b81f0f9868ac953a485 bridge: Avoid memory leak from RSPAN mirrors in bridge_destroy(). 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. --- diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index a95a45852..4be0d1e6f 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);