public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken
@ 2005-10-25 21:10 jlan at engr dot sgi dot com
2005-11-03 21:39 ` [Bug libc/1548] " cvs-commit at gcc dot gnu dot org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: jlan at engr dot sgi dot com @ 2005-10-25 21:10 UTC (permalink / raw)
To: glibc-bugs
We ran into problems with a RPC client. File descriptors 32-63, 96-127,
... are not being handled properly.
The svc_run implementation is calling svc_getreqset.
This function is broken because it is using ffs() to find bits
set in the fd_set * passed to it:
maskp = readfds->fds_bits;
for (sock = 0; sock < setsize; sock += NFDBITS)
for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1)))
INTUSE(svc_getreq_common) (sock + bit - 1);
ffs() requires an int argument, but in .../sys/select.h we find
typedef long int __fd_mask;
The problem was reported in 2.3.3 version, but the problem still exists
in glibc-2.3.5-10.3.
The problem can be fixed by using ffsl() instead.
--- glibc-2.3/sunrpc/svc.c 2004-02-09 02:47:53 -08:00
+++ glibc-2.3-fix/sunrpc/svc.c 2005-10-24 16:45:50 -07:00
@@ -372,7 +372,7 @@ svc_getreqset (fd_set *readfds)
setsize = FD_SETSIZE;
maskp = readfds->fds_bits;
for (sock = 0; sock < setsize; sock += NFDBITS)
- for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1)))
+ for (mask = *maskp++; (bit = ffsl (mask)); mask ^= (1L << (bit - 1)))
INTUSE(svc_getreq_common) (sock + bit - 1);
}
INTDEF (svc_getreqset)
--
Summary: glibc sunrpc svc_getreqset is broken
Product: glibc
Version: 2.3.5
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: drepper at redhat dot com
ReportedBy: jlan at engr dot sgi dot com
CC: glibc-bugs at sources dot redhat dot com,tee at sgi dot
com
http://sourceware.org/bugzilla/show_bug.cgi?id=1548
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/1548] glibc sunrpc svc_getreqset is broken
2005-10-25 21:10 [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken jlan at engr dot sgi dot com
@ 2005-11-03 21:39 ` cvs-commit at gcc dot gnu dot org
2005-11-03 23:19 ` jlan at engr dot sgi dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-11-03 21:39 UTC (permalink / raw)
To: glibc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-11-03 21:39 -------
Subject: Bug 1548
CVSROOT: /cvs/glibc
Module name: libc
Changes by: roland@sources.redhat.com 2005-11-03 21:39:36
Modified files:
sunrpc : svc.c
Log message:
2005-11-03 Roland McGrath <roland@redhat.com>
[BZ #1548]
* sunrpc/svc.c (svc_getreqset): Use ffsl instead of ffs on fd_mask.
From Jay Lan <jlan@engr.sgi.com>.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/svc.c.diff?cvsroot=glibc&r1=1.18&r2=1.19
--
http://sourceware.org/bugzilla/show_bug.cgi?id=1548
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/1548] glibc sunrpc svc_getreqset is broken
2005-10-25 21:10 [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken jlan at engr dot sgi dot com
2005-11-03 21:39 ` [Bug libc/1548] " cvs-commit at gcc dot gnu dot org
@ 2005-11-03 23:19 ` jlan at engr dot sgi dot com
2005-11-03 23:30 ` cvs-commit at gcc dot gnu dot org
2005-12-23 15:22 ` drepper at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: jlan at engr dot sgi dot com @ 2005-11-03 23:19 UTC (permalink / raw)
To: glibc-bugs
------- Additional Comments From jlan at engr dot sgi dot com 2005-11-03 23:19 -------
The patch mentioned in Comment#1 is different from what i submitted.
Without "L" in the statement below
... mask ^= (1L << (bit - 1)))
you still lose LSB 32 bits in 64 bit machines.
- jay
--
http://sourceware.org/bugzilla/show_bug.cgi?id=1548
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/1548] glibc sunrpc svc_getreqset is broken
2005-10-25 21:10 [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken jlan at engr dot sgi dot com
2005-11-03 21:39 ` [Bug libc/1548] " cvs-commit at gcc dot gnu dot org
2005-11-03 23:19 ` jlan at engr dot sgi dot com
@ 2005-11-03 23:30 ` cvs-commit at gcc dot gnu dot org
2005-12-23 15:22 ` drepper at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-11-03 23:30 UTC (permalink / raw)
To: glibc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-11-03 23:30 -------
Subject: Bug 1548
CVSROOT: /cvs/glibc
Module name: libc
Changes by: roland@sources.redhat.com 2005-11-03 23:30:45
Modified files:
sunrpc : svc.c
Log message:
2005-11-03 Roland McGrath <roland@redhat.com>
[BZ #1548]
* sunrpc/svc.c (svc_getreqset): Use ffsl instead of ffs on fd_mask,
make sure constant is long.
From Jay Lan <jlan@engr.sgi.com>.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/svc.c.diff?cvsroot=glibc&r1=1.19&r2=1.20
--
http://sourceware.org/bugzilla/show_bug.cgi?id=1548
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/1548] glibc sunrpc svc_getreqset is broken
2005-10-25 21:10 [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken jlan at engr dot sgi dot com
` (2 preceding siblings ...)
2005-11-03 23:30 ` cvs-commit at gcc dot gnu dot org
@ 2005-12-23 15:22 ` drepper at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: drepper at redhat dot com @ 2005-12-23 15:22 UTC (permalink / raw)
To: glibc-bugs
------- Additional Comments From drepper at redhat dot com 2005-12-23 15:22 -------
Patch has been applied.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://sourceware.org/bugzilla/show_bug.cgi?id=1548
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-12-23 15:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-25 21:10 [Bug libc/1548] New: glibc sunrpc svc_getreqset is broken jlan at engr dot sgi dot com
2005-11-03 21:39 ` [Bug libc/1548] " cvs-commit at gcc dot gnu dot org
2005-11-03 23:19 ` jlan at engr dot sgi dot com
2005-11-03 23:30 ` cvs-commit at gcc dot gnu dot org
2005-12-23 15:22 ` drepper at redhat dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).