aboutsummaryrefslogtreecommitdiff
path: root/vswitchd/ovs-brcompatd.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2009-08-14 13:44:27 -0700
committerBen Pfaff <blp@nicira.com>2009-08-18 12:36:47 -0700
commit694f2679ce82beafe65b159e82e0c4891dbc71dc (patch)
tree1a27b0186b86fb534b175f144383286020c84a31 /vswitchd/ovs-brcompatd.c
parent2595cb8cea6498fa66406f5e4d6c3296893a7de8 (diff)
ovs-brcompatd: Fix memory leak.
Diffstat (limited to 'vswitchd/ovs-brcompatd.c')
-rw-r--r--vswitchd/ovs-brcompatd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/vswitchd/ovs-brcompatd.c b/vswitchd/ovs-brcompatd.c
index b7ef8470..02ebab8c 100644
--- a/vswitchd/ovs-brcompatd.c
+++ b/vswitchd/ovs-brcompatd.c
@@ -992,7 +992,6 @@ rtnl_recv_update(void)
const char *port_name = nl_attr_get_string(attrs[IFLA_IFNAME]);
char br_name[IFNAMSIZ];
uint32_t br_idx = nl_attr_get_u32(attrs[IFLA_MASTER]);
- struct svec ports;
enum netdev_flags flags;
if (!if_indextoname(br_idx, br_name)) {
@@ -1009,8 +1008,11 @@ rtnl_recv_update(void)
if (netdev_nodev_get_flags(port_name, &flags) == ENODEV) {
/* Network device is really gone. */
+ struct svec ports;
+
VLOG_INFO("network device %s destroyed, "
"removing from bridge %s", port_name, br_name);
+
svec_init(&ports);
cfg_get_all_keys(&ports, "bridge.%s.port", br_name);
svec_sort(&ports);
@@ -1018,6 +1020,7 @@ rtnl_recv_update(void)
del_port(br_name, port_name);
rewrite_and_reload_config();
}
+ svec_destroy(&ports);
} else {
/* A network device by that name exists even though the kernel
* told us it had disappeared. Probably, what happened was