aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2009-12-03 15:14:30 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2009-12-03 15:14:30 +0000
commit55fdae4cae632d6bc2b02ab07348646afb2da5aa (patch)
tree6e2abbacdf2dd93aedaa9e3507254d7dca817f53 /lib
parentc66e06a2f6f8895a9ca1ed469ca3a0126f6858d3 (diff)
The fd_mask type is an unsigned long, not an int, so treat the mask as a
long instead of an int when examining the results of select() to look for RPC requests. Previously this routine would ignore RPC requests to sockets whose file descriptor mod 64 was greater than 31 on a 64-bit platform. PR: amd64/141130 Submitted by: liujb of array networks MFC after: 3 days
Notes
Notes: svn path=/head/; revision=200061
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/rpc/svc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc/rpc/svc.c b/lib/libc/rpc/svc.c
index d2051218f497..282c2be2e19d 100644
--- a/lib/libc/rpc/svc.c
+++ b/lib/libc/rpc/svc.c
@@ -627,8 +627,8 @@ svc_getreqset(readfds)
maskp = readfds->fds_bits;
for (sock = 0; sock < FD_SETSIZE; sock += NFDBITS) {
- for (mask = *maskp++; (bit = ffs(mask)) != 0;
- mask ^= (1 << (bit - 1))) {
+ for (mask = *maskp++; (bit = ffsl(mask)) != 0;
+ mask ^= (1ul << (bit - 1))) {
/* sock has input waiting */
fd = sock + bit - 1;
svc_getreq_common(fd);