OSDN Git Service

svc.c: svc_getreqset() buffer overflow
authorWaldemar Brodkorb <wbx@openadk.org>
Sun, 13 Dec 2015 22:38:30 +0000 (23:38 +0100)
committerWaldemar Brodkorb <wbx@uclibc-ng.org>
Thu, 17 Dec 2015 20:15:52 +0000 (21:15 +0100)
http://bugs.busybox.net/show_bug.cgi?id=5588

Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
libc/inet/rpc/svc.c

index 6d7253a..c3d5518 100644 (file)
@@ -448,6 +448,8 @@ svc_getreqset (fd_set *readfds)
   register int bit;
 
   setsize = _rpc_dtablesize ();
+  if (setsize > FD_SETSIZE)
+    setsize = FD_SETSIZE;
   maskp = (u_int32_t *) readfds->fds_bits;
   for (sock = 0; sock < setsize; sock += 32)
     for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1)))