|
@@ -127,6 +127,8 @@ nf_tproxy_get_sock_v4(struct net *net, struct sk_buff *skb, void *hp,
|
|
|
daddr, dport,
|
|
|
in->ifindex);
|
|
|
|
|
|
+ if (sk && !atomic_inc_not_zero(&sk->sk_refcnt))
|
|
|
+ sk = NULL;
|
|
|
/* NOTE: we return listeners even if bound to
|
|
|
* 0.0.0.0, those are filtered out in
|
|
|
* xt_socket, since xt_TPROXY needs 0 bound
|
|
@@ -195,6 +197,8 @@ nf_tproxy_get_sock_v6(struct net *net, struct sk_buff *skb, int thoff, void *hp,
|
|
|
daddr, ntohs(dport),
|
|
|
in->ifindex);
|
|
|
|
|
|
+ if (sk && !atomic_inc_not_zero(&sk->sk_refcnt))
|
|
|
+ sk = NULL;
|
|
|
/* NOTE: we return listeners even if bound to
|
|
|
* 0.0.0.0, those are filtered out in
|
|
|
* xt_socket, since xt_TPROXY needs 0 bound
|