blob: 8d836c2ec5ec24d213d3161e8fbb4915460cc937 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
|