[PATCH] Fix two bugs in the limit of large numbers of sockets:

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Nov 7 15:36:00 GMT 2017


Erik,

On Nov  7 16:11, Corinna Vinschen wrote:
> On Nov  7 14:44, Erik M. Bray wrote:
> > * Fix the maximum number of sockets allowed in the session to 2048,
> >   instead of making it relative to sizeof(wsa_event).
> > 
> >   The original choice of 2048 was in order to fit the wsa_events array
> >   in the .cygwin_dll_common shared section, but there is still enough
> >   room to grow there to have 2048 sockets on 64-bit as well.
> > 
> > * Return an error and set errno=ENOBUF if a socket can't be created
> >   due to this limit being reached.
> > ---
> >  winsup/cygwin/fhandler_socket.cc | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
> > index 7a6dbdc..b8eda57 100644
> > --- a/winsup/cygwin/fhandler_socket.cc
> > +++ b/winsup/cygwin/fhandler_socket.cc
> > @@ -496,7 +496,7 @@ fhandler_socket::af_local_set_secret (char *buf)
> >  /* Maximum number of concurrently opened sockets from all Cygwin processes
> >     per session.  Note that shared sockets (through dup/fork/exec) are
> >     counted as one socket. */
> > -#define NUM_SOCKS       (32768 / sizeof (wsa_event))
> > +#define NUM_SOCKS       ((unsigned int) 2048)
> >  
> >  #define LOCK_EVENTS	\
> >    if (wsock_mtx && \
> > @@ -623,7 +623,14 @@ fhandler_socket::init_events ()
> >        NtClose (wsock_mtx);
> >        return false;
> >      }
> > -  wsock_events = search_wsa_event_slot (new_serial_number);
> > +  if (!(wsock_events = search_wsa_event_slot (new_serial_number)));
                                                                      ^^^
did you actually test this?

https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=2e989b212955665384bf61ee82dd487844a9371a


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20171107/117dd4f5/attachment.sig>


More information about the Cygwin-patches mailing list