2005-11-22 21:10:13

by Chris Wright

[permalink] [raw]
Subject: [patch 10/23] [PATCH] [NETFILTER] refcount leak of proto when ctnetlink dumping tuple

-stable review patch. If anyone has any objections, please let us know.
------------------

---
net/ipv4/netfilter/ip_conntrack_netlink.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

--- linux-2.6.14.2.orig/net/ipv4/netfilter/ip_conntrack_netlink.c
+++ linux-2.6.14.2/net/ipv4/netfilter/ip_conntrack_netlink.c
@@ -58,14 +58,17 @@ ctnetlink_dump_tuples_proto(struct sk_bu
const struct ip_conntrack_tuple *tuple)
{
struct ip_conntrack_protocol *proto;
+ int ret = 0;

NFA_PUT(skb, CTA_PROTO_NUM, sizeof(u_int8_t), &tuple->dst.protonum);

proto = ip_conntrack_proto_find_get(tuple->dst.protonum);
- if (proto && proto->tuple_to_nfattr)
- return proto->tuple_to_nfattr(skb, tuple);
+ if (likely(proto && proto->tuple_to_nfattr)) {
+ ret = proto->tuple_to_nfattr(skb, tuple);
+ ip_conntrack_proto_put(proto);
+ }

- return 0;
+ return ret;

nfattr_failure:
return -1;

--