diff options
| -rw-r--r-- | net/ipv6/udp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index f590db57a7c9..3413fc22ce4a 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
| @@ -279,8 +279,10 @@ int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) | |||
| 279 | } | 279 | } |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | if (udp_lib_checksum_complete(skb)) | 282 | if (sk->sk_filter) { |
| 283 | goto drop; | 283 | if (udp_lib_checksum_complete(skb)) |
| 284 | goto drop; | ||
| 285 | } | ||
| 284 | 286 | ||
| 285 | if ((rc = sock_queue_rcv_skb(sk,skb)) < 0) { | 287 | if ((rc = sock_queue_rcv_skb(sk,skb)) < 0) { |
| 286 | /* Note that an ENOMEM error is charged twice */ | 288 | /* Note that an ENOMEM error is charged twice */ |
