On Thu, Feb 14, 2013 at 09:37:26AM -0500, Kyle Mestery wrote: > Signed-off-by: Kyle Mestery <kmest...@cisco.com> > Acked-by: Ethan Jackson <et...@nicira.com>
I'm pretty sure this introduces a memory leak because ofpbuf_init() allocates data and I don't see it getting freed anywhere. So I applied the following incremental: diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c index 34b9532..3cf1225 100644 --- a/lib/dpif-linux.c +++ b/lib/dpif-linux.c @@ -489,6 +489,7 @@ dpif_linux_port_add(struct dpif *dpif_, struct netdev *netdev, struct nl_sock *sock = NULL; uint32_t upcall_pid; struct ofpbuf *buf; + uint64_t options_stub[64 / 8]; struct ofpbuf options; int error; @@ -518,7 +519,7 @@ dpif_linux_port_add(struct dpif *dpif_, struct netdev *netdev, tnl_cfg = netdev_get_tunnel_config(netdev); if (tnl_cfg && tnl_cfg->dst_port != 0) { - ofpbuf_init(&options, 64); + ofpbuf_use_stack(&options, options_stub, sizeof options_stub); nl_msg_put_u16(&options, OVS_TUNNEL_ATTR_DST_PORT, htons(tnl_cfg->dst_port)); request.options = options.data; I haven't pushed this yet, please let me know if you see a problem. Thanks, Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev