[INET_DIAG]: Use inet_twsk() with TIME_WAIT sockets
The fields being accessed in inet_diag_dump are outside sock_common, the common part of struct sock and struct inet_timewait_sock. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a2c2064f7f
commit
7dbf075524
@ -697,14 +697,14 @@ next_normal:
|
||||
if (r->idiag_states & TCPF_TIME_WAIT) {
|
||||
sk_for_each(sk, node,
|
||||
&hashinfo->ehash[i + hashinfo->ehash_size].chain) {
|
||||
struct inet_sock *inet = inet_sk(sk);
|
||||
const struct inet_timewait_sock *tw = inet_twsk(sk);
|
||||
|
||||
if (num < s_num)
|
||||
goto next_dying;
|
||||
if (r->id.idiag_sport != inet->sport &&
|
||||
if (r->id.idiag_sport != tw->tw_sport &&
|
||||
r->id.idiag_sport)
|
||||
goto next_dying;
|
||||
if (r->id.idiag_dport != inet->dport &&
|
||||
if (r->id.idiag_dport != tw->tw_dport &&
|
||||
r->id.idiag_dport)
|
||||
goto next_dying;
|
||||
if (inet_diag_dump_sock(skb, sk, cb) < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user