[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080604.012619.30196060.yoshfuji@linux-ipv6.org>
Date: Wed, 04 Jun 2008 01:26:19 +0900 (JST)
From: YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@...ux-ipv6.org>
To: den@...nvz.org
Cc: davem@...emloft.net, netdev@...r.kernel.org, kaber@...sh.net,
yoshfuji@...ux-ipv6.org
Subject: Re: [PATCH] [UDPv6] Possible dst leak in udpv6_sendmsg.
In article <1212493845.6499.29.camel@...s.sw.ru> (at Tue, 03 Jun 2008 15:50:45 +0400), "Denis V. Lunev" <den@...nvz.org> says:
> On Tue, 2008-06-03 at 20:35 +0900, YOSHIFUJI Hideaki / 吉藤英明 wrote:
> > In article <1212491322-9161-1-git-send-email-den@...nvz.org> (at Tue, 3 Jun 2008 15:08:42 +0400), "Denis V. Lunev" <den@...nvz.org> says:
> >
> > > ip6_sk_dst_lookup returns held dst entry. It should be released on all paths
> > > beyond this point. Add missed release when up->pending is set.
> >
> > Which kernel are you refering?
> The patch is made against current net-2.6 tree, though all kernels are
> affected, starting at least RHEL5
>
> > And, would you please take a look at ipv4 side as well?
>
> ipv4 is ok, the code looks the same but there is an ip_rt_put at the
> out: label.
>
Okay, I think we have one more leakage here (in do_confirm path).
How about this?
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 1fd784f..47123bf 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -848,12 +848,14 @@ do_append_data:
} else {
dst_release(dst);
}
+ dst = NULL;
}
if (err > 0)
err = np->recverr ? net_xmit_errno(err) : 0;
release_sock(sk);
out:
+ dst_release(dst);
fl6_sock_release(flowlabel);
if (!err)
return len;
--yoshfuji
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists