Testcase 909: ofproto-dpif - patch ports
The ofpbuf->base is set to OFPBUF_STUB at
    ofputil_decode_switch_features()->ofpbuf_use_const()
so ofpbuf_delete does not free it. Call trace is below:
    vconn_stream_recv(vconn-stream.c:155)
    do_recv(vconn.c:640)
    vconn_recv(vconn.c:598)
    vconn_recv_block(vconn.c:738)
    vconn_recv_xid__(vconn.c:758)
    port_iterator_fetch_features(ovs-ofctl.c:846)
    port_iterator_init(ovs-ofctl.c:889)
    fetch_ofputil_phy_port(ovs-ofctl.c:975)

Signed-off-by: William Tu <u9012...@gmail.com>
---
 utilities/ovs-ofctl.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index 4dbd4ed..8e92160 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -947,6 +947,8 @@ port_iterator_destroy(struct port_iterator *pi)
         }
 
         ofpbuf_delete(pi->reply);
+        /* free because the base of ofpbuf is OFPBUF_STUB. */
+        free(pi->reply->base);
     }
 }
 
-- 
2.5.0

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to