apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From traw...@apache.org
Subject cvs commit: apr/poll/unix poll.c
Date Fri, 30 Jan 2004 12:33:46 GMT
trawick     2004/01/30 04:33:46

  Modified:    .        CHANGES
               poll/unix poll.c
  Log:
  Return an error instead of silently failing when apr_poll() is
  used with file descriptors >= FD_SETSIZE.  (Unix systems with
  no native poll())
  
  Submitted by:           Jeff Trawick
  Reviewed and fixed by:	Brad Nicholes
  
  Revision  Changes    Path
  1.449     +4 -0      apr/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apr/CHANGES,v
  retrieving revision 1.448
  retrieving revision 1.449
  diff -u -r1.448 -r1.449
  --- CHANGES	29 Dec 2003 21:03:49 -0000	1.448
  +++ CHANGES	30 Jan 2004 12:33:46 -0000	1.449
  @@ -7,6 +7,10 @@
   
   Changes with APR 1.0
   
  +  *) Return an error instead of silently failing when apr_poll() is
  +     used with file descriptors >= FD_SETSIZE.  (Unix systems with
  +     no native poll())  [Jeff Trawick, Brad Nicholes]
  +
     *) new error status APR_STATUS_IS_ENOTENOUGHENTROPY, Doxygen fixes
        [Sander Temme <sander at temme dot net]
   
  
  
  
  1.43      +12 -0     apr/poll/unix/poll.c
  
  Index: poll.c
  ===================================================================
  RCS file: /home/cvs/apr/poll/unix/poll.c,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- poll.c	22 Nov 2003 10:53:46 -0000	1.42
  +++ poll.c	30 Jan 2004 12:33:46 -0000	1.43
  @@ -248,6 +248,12 @@
           else {
               break;
           }
  +#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles
*/
  +        if (fd >= FD_SETSIZE) {
  +            /* XXX invent new error code so application has a clue */
  +            return APR_EBADF;
  +        }
  +#endif
           if (aprset[i].reqevents & APR_POLLIN) {
               FD_SET(fd, &readset);
           }
  @@ -425,6 +431,12 @@
   #endif
   #endif
       }
  +#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles
*/
  +    if (fd >= FD_SETSIZE) {
  +        /* XXX invent new error code so application has a clue */
  +        return APR_EBADF;
  +    }
  +#endif
       if (descriptor->reqevents & APR_POLLIN) {
           FD_SET(fd, &(pollset->readset));
       }
  
  
  

Mime
View raw message