diff options
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/raw.c | 3 | ||||
-rw-r--r-- | net/ipv6/udp.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 331af3b882ac..204f2e833f04 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -383,7 +383,8 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb) | |||
383 | } | 383 | } |
384 | 384 | ||
385 | /* Charge it to the socket. */ | 385 | /* Charge it to the socket. */ |
386 | if (ip_queue_rcv_skb(sk, skb) < 0) { | 386 | skb_dst_drop(skb); |
387 | if (sock_queue_rcv_skb(sk, skb) < 0) { | ||
387 | kfree_skb(skb); | 388 | kfree_skb(skb); |
388 | return NET_RX_DROP; | 389 | return NET_RX_DROP; |
389 | } | 390 | } |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 846f4757eb8d..b4a4a15fa96f 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -538,7 +538,9 @@ int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) | |||
538 | goto drop; | 538 | goto drop; |
539 | } | 539 | } |
540 | 540 | ||
541 | if ((rc = ip_queue_rcv_skb(sk, skb)) < 0) { | 541 | skb_dst_drop(skb); |
542 | rc = sock_queue_rcv_skb(sk, skb); | ||
543 | if (rc < 0) { | ||
542 | /* Note that an ENOMEM error is charged twice */ | 544 | /* Note that an ENOMEM error is charged twice */ |
543 | if (rc == -ENOMEM) | 545 | if (rc == -ENOMEM) |
544 | UDP6_INC_STATS_BH(sock_net(sk), | 546 | UDP6_INC_STATS_BH(sock_net(sk), |