This fixes this strange bug in the 2.4 kernel.

Signed-off-by: Alina Friedrichsen <x-al...@gmx.net>

Index: target/linux/brcm-2.4/patches/200-fix_ipv6_receiving_with_ipv4_socket.patch
===================================================================
--- target/linux/brcm-2.4/patches/200-fix_ipv6_receiving_with_ipv4_socket.patch	(Revision 0)
+++ target/linux/brcm-2.4/patches/200-fix_ipv6_receiving_with_ipv4_socket.patch	(Revision 0)
@@ -0,0 +1,18 @@
+--- a/net/ipv4/udp.c	2009-12-26 00:06:59.000000000 +0100
++++ b/net/ipv4/udp.c	2009-12-27 00:27:05.003012266 +0100
+@@ -711,7 +711,14 @@
+ 	skb = skb_recv_datagram(sk, flags, noblock, &err);
+ 	if (!skb)
+ 		goto out;
+-  
++
++	if (skb->nh.iph->version != 4) {
++		skb_free_datagram(sk, skb);
++		if (noblock)
++			return -EAGAIN;
++		goto try_again;
++	}
++
+   	copied = skb->len - sizeof(struct udphdr);
+ 	if (copied > len) {
+ 		copied = len;
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to