netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 1/2] openvswitch: Fix helper reference leak
@ 2015-12-09 22:07 Joe Stringer
  2015-12-09 22:07 ` [PATCH net 2/2] openvswitch: Respect conntrack zone even if invalid Joe Stringer
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Joe Stringer @ 2015-12-09 22:07 UTC (permalink / raw)
  To: netdev; +Cc: Joe Stringer, pshelar

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 <joe@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);
 	return 0;
 err_free_ct:
-	nf_conntrack_free(ct_info.ct);
+	__ovs_ct_free_action(&ct_info);
 	return err;
 }
 
@@ -750,6 +752,11 @@ void ovs_ct_free_action(const struct nlattr *a)
 {
 	struct ovs_conntrack_info *ct_info = nla_data(a);
 
+	__ovs_ct_free_action(ct_info);
+}
+
+static void __ovs_ct_free_action(struct ovs_conntrack_info *ct_info)
+{
 	if (ct_info->helper)
 		module_put(ct_info->helper->me);
 	if (ct_info->ct)
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-12-23 22:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-09 22:07 [PATCH net 1/2] openvswitch: Fix helper reference leak Joe Stringer
2015-12-09 22:07 ` [PATCH net 2/2] openvswitch: Respect conntrack zone even if invalid Joe Stringer
2015-12-09 23:34   ` Pravin Shelar
2015-12-12  4:32   ` David Miller
2015-12-09 22:50 ` [PATCH net 1/2] openvswitch: Fix helper reference leak Pravin Shelar
2015-12-09 23:10   ` Joe Stringer
2015-12-09 23:33     ` Pravin Shelar
2015-12-23 22:44       ` Joe Stringer
2015-12-12  4:32 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).