diff options
-rw-r--r-- | net/ipv4/udp.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 4ec4a25a8d0c..28355350fb62 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -951,14 +951,10 @@ int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) | |||
951 | * >0 if skb should be passed on to UDP. | 951 | * >0 if skb should be passed on to UDP. |
952 | * <0 if skb should be resubmitted as proto -N | 952 | * <0 if skb should be resubmitted as proto -N |
953 | */ | 953 | */ |
954 | unsigned int len; | ||
955 | 954 | ||
956 | /* if we're overly short, let UDP handle it */ | 955 | /* if we're overly short, let UDP handle it */ |
957 | len = skb->len - sizeof(struct udphdr); | 956 | if (skb->len > sizeof(struct udphdr) && |
958 | if (len <= 0) | 957 | up->encap_rcv != NULL) { |
959 | goto udp; | ||
960 | |||
961 | if (up->encap_rcv != NULL) { | ||
962 | int ret; | 958 | int ret; |
963 | 959 | ||
964 | ret = (*up->encap_rcv)(sk, skb); | 960 | ret = (*up->encap_rcv)(sk, skb); |
@@ -971,7 +967,6 @@ int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) | |||
971 | /* FALLTHROUGH -- it's a UDP Packet */ | 967 | /* FALLTHROUGH -- it's a UDP Packet */ |
972 | } | 968 | } |
973 | 969 | ||
974 | udp: | ||
975 | /* | 970 | /* |
976 | * UDP-Lite specific tests, ignored on UDP sockets | 971 | * UDP-Lite specific tests, ignored on UDP sockets |
977 | */ | 972 | */ |