summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYi-Hung Wei <yihung.wei@gmail.com>2017-04-07 14:43:39 -0700
committerBen Pfaff <blp@ovn.org>2017-04-22 10:24:33 -0700
commitbc36c3a8b0ebb41d9ce5646bedb147be6d77975c (patch)
tree520d0346d1621149cc23665bf495bcd99c241aa5
parent7b91e3c85b5f54cec7dae712fa9f1635847d539a (diff)
downloadopenvswitch-bc36c3a8b0ebb41d9ce5646bedb147be6d77975c.tar.gz
ofproto: Fix memory leak in handle_tlv_table_mod()
In testcase "tunnel - Geneve metadata", valgrind reports a memory leak with the following call stack. xcalloc (util.c:95) tun_metadata_alloc (tun-metadata.c:89) tun_metadata_table_mod (tun-metadata.c:175) handle_tlv_table_mod (ofproto.c:7856) handle_openflow__ (ofproto.c:8036) handle_openflow (ofproto.c:8098) ofconn_run (connmgr.c:1427) connmgr_run (connmgr.c:363) ofproto_run (ofproto.c:1815) bridge_run__ (bridge.c:2915) bridge_run (bridge.c:2972) main (ovs-vswitchd.c:111) Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--ofproto/ofproto.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index dc0d82987..ca0f3e49b 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -7873,6 +7873,8 @@ handle_tlv_table_mod(struct ofconn *ofconn, const struct ofp_header *oh)
if (!error) {
ovsrcu_set(&ofproto->metadata_tab, new_tab);
tun_metadata_postpone_free(old_tab);
+ } else {
+ tun_metadata_free(new_tab);
}
}