diff -NurpP --minimal a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c --- a/net/ipv4/tcp_diag.c 2005-02-03 16:38:05.000000000 +0100 +++ b/net/ipv4/tcp_diag.c 2005-02-06 01:46:02.000000000 +0100 @@ -616,6 +616,11 @@ static int tcpdiag_dump(struct sk_buff * continue; } + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) { + num++; + continue; + } + if (r->id.tcpdiag_sport != inet->sport && r->id.tcpdiag_sport) goto next_listen; @@ -674,6 +679,8 @@ skip_listen_ht: if (num < s_num) goto next_normal; + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) + goto next_normal; if (!(r->tcpdiag_states & (1 << sk->sk_state))) goto next_normal; if (r->id.tcpdiag_sport != inet->sport && @@ -696,6 +703,8 @@ next_normal: if (num < s_num) goto next_dying; + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) + goto next_dying; if (r->id.tcpdiag_sport != inet->sport && r->id.tcpdiag_sport) goto next_dying;