From: Lili Huang <[email protected]> Conn should be removed from the list before freed.
This crash will be triggered when a established flow do ct(nat) again, like "ip,actions=ct(table=1) table=1,in_port=1,ip,actions=ct(commit,nat(dst=5.5.5.5)),2 table=1,in_port=2,ip,ct_state=+est,actions=1 table=1,in_port=1,ip,ct_state=+est,actions=2" Signed-off-by: Lili Huang <[email protected]> --- lib/conntrack.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/conntrack.c b/lib/conntrack.c index 1c0e023..dd73e1a 100644 --- a/lib/conntrack.c +++ b/lib/conntrack.c @@ -779,6 +779,8 @@ conn_not_found(struct conntrack *ct, struct dp_packet *pkt, ct, nc, conn_for_un_nat_copy); if (!nat_res) { + ovs_list_remove(&nc->exp_node); + ctx->conn = NULL; goto nat_res_exhaustion; } -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
