|
|
@@ -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;
|