diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 2521690d62d6..206210125fd7 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
| @@ -1456,6 +1456,8 @@ process: | |||
| 1456 | } | 1456 | } |
| 1457 | sock_hold(sk); | 1457 | sock_hold(sk); |
| 1458 | refcounted = true; | 1458 | refcounted = true; |
| 1459 | if (tcp_filter(sk, skb)) | ||
| 1460 | goto discard_and_relse; | ||
| 1459 | nsk = tcp_check_req(sk, skb, req, false); | 1461 | nsk = tcp_check_req(sk, skb, req, false); |
| 1460 | if (!nsk) { | 1462 | if (!nsk) { |
| 1461 | reqsk_put(req); | 1463 | reqsk_put(req); |
| @@ -1464,8 +1466,6 @@ process: | |||
| 1464 | if (nsk == sk) { | 1466 | if (nsk == sk) { |
| 1465 | reqsk_put(req); | 1467 | reqsk_put(req); |
| 1466 | tcp_v6_restore_cb(skb); | 1468 | tcp_v6_restore_cb(skb); |
| 1467 | } else if (tcp_filter(sk, skb)) { | ||
| 1468 | goto discard_and_relse; | ||
| 1469 | } else if (tcp_child_process(sk, nsk, skb)) { | 1469 | } else if (tcp_child_process(sk, nsk, skb)) { |
| 1470 | tcp_v6_send_reset(nsk, skb); | 1470 | tcp_v6_send_reset(nsk, skb); |
| 1471 | goto discard_and_relse; | 1471 | goto discard_and_relse; |
