netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix ip6_build_xmit bug
@ 2003-03-22  0:21 Jon Grimm
  2003-03-22 19:26 ` ip6sec MTU/fragmentation issue / Was: " bert hubert
  2003-03-23  9:22 ` David S. Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Jon Grimm @ 2003-03-22  0:21 UTC (permalink / raw)
  To: linux-net@vger.kernel.org, netdev@oss.sgi.com

Wanting to play a bit with v6 fragmentation I started using ping6 to
send various message sizes.  Noticed that messages of sizes just under
where fragmentation would kick in, segfaulted in ip6_build_xmit().

Looks like ip6_build_xmit does not allocate room for the
dev->hard_header_len on the non-fragmentation path as is done in other
places.  The hard header len gets reserved even though room was not
allocated for it.  Consequenetly, the put of the raw data can overflow
the skb. 

Patch below for your consideration.

Best Regards,
Jon Grimm


--- lksctp-2.5/net/ipv6/ip6_output.c	Fri Mar 21 17:27:00 2003
+++ lksctp-2.5.work/net/ipv6/ip6_output.c	Fri Mar 21 17:24:38 2003
@@ -643,7 +643,8 @@
 		if (flags&MSG_PROBE)
 			goto out;
 		/* alloc skb with mtu as we do in the IPv4 stack for IPsec */
-		skb = sock_alloc_send_skb(sk, mtu, flags & MSG_DONTWAIT, &err);
+		skb = sock_alloc_send_skb(sk, mtu + dev->hard_header_len + 15,
+					  flags & MSG_DONTWAIT, &err);
 
 		if (skb == NULL) {
 			IP6_INC_STATS(Ip6OutDiscards);

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

end of thread, other threads:[~2003-03-23  9:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-22  0:21 [PATCH] Fix ip6_build_xmit bug Jon Grimm
2003-03-22 19:26 ` ip6sec MTU/fragmentation issue / Was: " bert hubert
2003-03-23  9:22 ` David S. 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).