summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_timewait.c
diff options
context:
space:
mode:
authorhsu <hsu@FreeBSD.org>2002-06-12 03:11:06 +0000
committerhsu <hsu@FreeBSD.org>2002-06-12 03:11:06 +0000
commitb67cb93fe348fd9d04a64b43b7e40481ebafc62d (patch)
tree1a225fa2ec5fd491e463d2dd6b1e55d959d10d0b /sys/netinet/tcp_timewait.c
parentab949ac863c2422987fe56ef2d0b5084e8a3810d (diff)
downloadFreeBSD-src-b67cb93fe348fd9d04a64b43b7e40481ebafc62d.zip
FreeBSD-src-b67cb93fe348fd9d04a64b43b7e40481ebafc62d.tar.gz
Fix logic which resulted in missing a call to INP_UNLOCK().
Diffstat (limited to 'sys/netinet/tcp_timewait.c')
-rw-r--r--sys/netinet/tcp_timewait.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index 143dbff..ebb2479 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -853,12 +853,9 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS)
for (inp = LIST_FIRST(tcbinfo.listhead), i = 0; inp && i < n;
inp = LIST_NEXT(inp, inp_list)) {
INP_LOCK(inp);
- if (inp->inp_gencnt <= gencnt) {
- if (cr_canseesocket(req->td->td_ucred,
- inp->inp_socket))
- continue;
+ if (inp->inp_gencnt <= gencnt &&
+ cr_canseesocket(req->td->td_ucred, inp->inp_socket) == 0)
inp_list[i++] = inp;
- }
INP_UNLOCK(inp);
}
INP_INFO_RUNLOCK(&tcbinfo);
OpenPOWER on IntegriCloud