]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.14.3/recount-leak-of-proto-when-ctnetlink-dumping-tuple.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.14.3 / recount-leak-of-proto-when-ctnetlink-dumping-tuple.patch
CommitLineData
749cd2d3
CW
1From stable-bounces@linux.kernel.org Tue Nov 15 04:32:52 2005
2Date: Tue, 15 Nov 2005 13:32:36 +0100
3From: Harald Welte <laforge@netfilter.org>
4To: Stable Kernel <stable@kernel.org>
5Cc:
6Subject: [PATCH] [NETFILTER] refcount leak of proto when ctnetlink dumping tuple
7
8From: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
9
10Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
11Signed-off-by: Harald Welte <laforge@netfilter.org>
12Signed-off-by: Chris Wright <chrisw@osdl.org>
a9b345af 13Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
749cd2d3 14---
749cd2d3 15 net/ipv4/netfilter/ip_conntrack_netlink.c | 9 ++++++---
a9b345af 16 1 file changed, 6 insertions(+), 3 deletions(-)
749cd2d3 17
a9b345af
GKH
18--- linux-2.6.14.2.orig/net/ipv4/netfilter/ip_conntrack_netlink.c
19+++ linux-2.6.14.2/net/ipv4/netfilter/ip_conntrack_netlink.c
749cd2d3
CW
20@@ -58,14 +58,17 @@ ctnetlink_dump_tuples_proto(struct sk_bu
21 const struct ip_conntrack_tuple *tuple)
22 {
23 struct ip_conntrack_protocol *proto;
24+ int ret = 0;
25
26 NFA_PUT(skb, CTA_PROTO_NUM, sizeof(u_int8_t), &tuple->dst.protonum);
27
28 proto = ip_conntrack_proto_find_get(tuple->dst.protonum);
29- if (proto && proto->tuple_to_nfattr)
30- return proto->tuple_to_nfattr(skb, tuple);
31+ if (likely(proto && proto->tuple_to_nfattr)) {
32+ ret = proto->tuple_to_nfattr(skb, tuple);
33+ ip_conntrack_proto_put(proto);
34+ }
35
36- return 0;
37+ return ret;
38
39 nfattr_failure:
40 return -1;