git://git.onelab.eu
/
sliver-openvswitch.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2595cb8
)
ovs-brcompatd: Fix memory leak.
author
Ben Pfaff
<blp@nicira.com>
Fri, 14 Aug 2009 20:44:27 +0000
(13:44 -0700)
committer
Ben Pfaff
<blp@nicira.com>
Tue, 18 Aug 2009 19:36:47 +0000
(12:36 -0700)
vswitchd/ovs-brcompatd.c
patch
|
blob
|
history
diff --git
a/vswitchd/ovs-brcompatd.c
b/vswitchd/ovs-brcompatd.c
index
b7ef847
..
02ebab8
100644
(file)
--- 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]);
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)) {
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. */
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);
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);
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();
}
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
} else {
/* A network device by that name exists even though the kernel
* told us it had disappeared. Probably, what happened was