diff options
author | hsu <hsu@FreeBSD.org> | 2002-06-12 03:11:06 +0000 |
---|---|---|
committer | hsu <hsu@FreeBSD.org> | 2002-06-12 03:11:06 +0000 |
commit | b67cb93fe348fd9d04a64b43b7e40481ebafc62d (patch) | |
tree | 1a225fa2ec5fd491e463d2dd6b1e55d959d10d0b /sys/netinet/tcp_timewait.c | |
parent | ab949ac863c2422987fe56ef2d0b5084e8a3810d (diff) | |
download | FreeBSD-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.c | 7 |
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); |