On 9 December 2015 at 14:50, Pravin Shelar <pshe...@nicira.com> wrote: > On Wed, Dec 9, 2015 at 2:07 PM, Joe Stringer <j...@ovn.org> wrote: >> If the actions (re)allocation fails, or the actions list is larger than the >> maximum size, and the conntrack action is the last action when these >> problems are hit, then references to helper modules may be leaked. Fix >> the issue. >> >> Fixes: cae3a2627520 ("openvswitch: Allow attaching helpers to ct action") >> Signed-off-by: Joe Stringer <j...@ovn.org> >> --- >> net/openvswitch/conntrack.c | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c >> index c2cc11168fd5..585a5aa81f89 100644 >> --- a/net/openvswitch/conntrack.c >> +++ b/net/openvswitch/conntrack.c >> @@ -53,6 +53,8 @@ struct ovs_conntrack_info { >> struct md_labels labels; >> }; >> >> +static void __ovs_ct_free_action(struct ovs_conntrack_info *ct_info); >> + >> static u16 key_to_nfproto(const struct sw_flow_key *key) >> { >> switch (ntohs(key->eth.type)) { >> @@ -708,7 +710,7 @@ int ovs_ct_copy_action(struct net *net, const struct >> nlattr *attr, >> nf_conntrack_get(&ct_info.ct->ct_general); > > I see another issue here. Updates to ct_info are done after it is > copied to action list. ct action on the action list and ct_info are > inconsistent, So it is still leaking nf-conntrack reference.
You're referring to the below? __set_bit(IPS_CONFIRMED_BIT, &ct_info.ct->status); nf_conntrack_get(&ct_info.ct->ct_general); ct_info.ct points to the same location as the version that has been copied into the action list. I agree it's a bit misleading though. If you're not seeing something else, it seems cosmetic so I can (should?) follow up on net-next. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html