gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r9134 - in libmicrohttpd: . src/daemon


From: gnunet
Subject: [GNUnet-SVN] r9134 - in libmicrohttpd: . src/daemon
Date: Thu, 8 Oct 2009 02:43:53 -0600

Author: grothoff
Date: 2009-10-08 02:43:52 -0600 (Thu, 08 Oct 2009)
New Revision: 9134

Modified:
   libmicrohttpd/ChangeLog
   libmicrohttpd/src/daemon/daemon.c
Log:
limit sockets to  < FD_SETSIZE

Modified: libmicrohttpd/ChangeLog
===================================================================
--- libmicrohttpd/ChangeLog     2009-10-07 23:03:39 UTC (rev 9133)
+++ libmicrohttpd/ChangeLog     2009-10-08 08:43:52 UTC (rev 9134)
@@ -1,3 +1,6 @@
+Thu Oct  8 10:43:02 CEST 2009
+       Added check for sockets being '< FD_SETSIZE' (just to be safe). -CG
+
 Mon Oct  5 21:17:26 CEST 2009
        Adding "COOKIE" header string #defines. -CG
 
@@ -36,7 +39,7 @@
         the next request was successfully transmitted).  This could
         confuse applications not expecting to see a connection "complete"
         that they were never aware of in the first place. -CG
-       
+
 Mon May 11 13:01:16 MDT 2009
          Fixed issue where error code on timeout was "TERMINATED_WITH_ERROR"
          instead of "TERMINATED_TIMEOUT_REACHED". -CG

Modified: libmicrohttpd/src/daemon/daemon.c
===================================================================
--- libmicrohttpd/src/daemon/daemon.c   2009-10-07 23:03:39 UTC (rev 9133)
+++ libmicrohttpd/src/daemon/daemon.c   2009-10-08 08:43:52 UTC (rev 9134)
@@ -577,7 +577,6 @@
   memset (addr, 0, sizeof (addrstorage));
 
   s = ACCEPT (daemon->socket_fd, addr, &addrlen);
-
   if ((s < 0) || (addrlen <= 0))
     {
 #if HAVE_MESSAGES
@@ -593,7 +592,21 @@
         }
       return MHD_NO;
     }
+  if (s >= FD_SETSIZE)
+    {
 #if HAVE_MESSAGES
+      if ((options & MHD_USE_DEBUG) != 0)
+        FPRINTF (stderr,
+                "Socket descriptor larger than FD_SETSIZE: %d > %d\n",
+                s,
+                FD_SETSIZE);
+#endif     
+      CLOSE (s);
+      return MHD_NO;
+    }
+
+
+#if HAVE_MESSAGES
 #if DEBUG_CONNECT
   MHD_DLOG (daemon, "Accepted connection on socket %d\n", s);
 #endif
@@ -1163,7 +1176,7 @@
     }
 #endif
   else
-    socket_fd = SOCKET (PF_INET, SOCK_STREAM, 0);
+    socket_fd = SOCKET (PF_INET, SOCK_STREAM, 0);  
   if (socket_fd < 0)
     {
 #if HAVE_MESSAGES
@@ -1173,6 +1186,18 @@
       free (retVal);
       return NULL;
     }
+  if (socket_fd >= FD_SETSIZE)
+    {
+#if HAVE_MESSAGES
+      if ((options & MHD_USE_DEBUG) != 0)
+        FPRINTF (stderr,
+                "Socket descriptor larger than FD_SETSIZE: %d > %d\n",
+                socket_fd,
+                FD_SETSIZE);
+#endif     
+      CLOSE (socket_fd);
+      return NULL;
+    }
   if ((SETSOCKOPT (socket_fd,
                    SOL_SOCKET,
                    SO_REUSEADDR,





reply via email to

[Prev in Thread] Current Thread [Next in Thread]