|
@@ -1527,6 +1527,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
|
|
|
|
|
|
uh = udp_hdr(skb);
|
|
|
ulen = ntohs(uh->len);
|
|
|
+ saddr = ip_hdr(skb)->saddr;
|
|
|
+ daddr = ip_hdr(skb)->daddr;
|
|
|
+
|
|
|
if (ulen > skb->len)
|
|
|
goto short_packet;
|
|
|
|
|
@@ -1540,9 +1543,6 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
|
|
|
if (udp4_csum_init(skb, uh, proto))
|
|
|
goto csum_error;
|
|
|
|
|
|
- saddr = ip_hdr(skb)->saddr;
|
|
|
- daddr = ip_hdr(skb)->daddr;
|
|
|
-
|
|
|
if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST))
|
|
|
return __udp4_lib_mcast_deliver(net, skb, uh,
|
|
|
saddr, daddr, udptable);
|