svn commit: r200061 - head/lib/libc/rpc
John Baldwin
jhb at FreeBSD.org
Thu Dec 3 15:14:30 UTC 2009
Author: jhb
Date: Thu Dec 3 15:14:30 2009
New Revision: 200061
URL: http://svn.freebsd.org/changeset/base/200061
Log:
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
Modified:
head/lib/libc/rpc/svc.c
Modified: head/lib/libc/rpc/svc.c
==============================================================================
--- head/lib/libc/rpc/svc.c Thu Dec 3 14:59:42 2009 (r200060)
+++ head/lib/libc/rpc/svc.c Thu Dec 3 15:14:30 2009 (r200061)
@@ -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);
More information about the svn-src-all
mailing list