fix
authorChristian Grothoff <christian@grothoff.org>
Sun, 20 Jun 2010 15:13:57 +0000 (15:13 +0000)
committerChristian Grothoff <christian@grothoff.org>
Sun, 20 Jun 2010 15:13:57 +0000 (15:13 +0000)
src/util/connection.c
src/util/network.c

index 1f2624a283690fd3c8e37151bf2fdf6f0a69280b..a855bd1ec478f311fcb77a84fcf6271ac4af228d 100644 (file)
@@ -354,7 +354,7 @@ GNUNET_CONNECTION_create_from_accept (struct GNUNET_SCHEDULER_Handle
                                       size_t maxbuf)
 {
   struct GNUNET_CONNECTION_Handle *ret;
-  char addr[32];
+  char addr[128];
   socklen_t addrlen;
   struct GNUNET_NETWORK_Handle *sock;
   int aret;
@@ -371,7 +371,8 @@ GNUNET_CONNECTION_create_from_accept (struct GNUNET_SCHEDULER_Handle
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "accept");
       return NULL;
     }
-  if (addrlen > sizeof (addr))
+  if ( (addrlen > sizeof (addr)) ||
+       (addrlen < sizeof (sa_family_t)) )
     {
       GNUNET_break (0);
       GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (sock));
index a054709d9959d5693b7e7079e7a5d8eb5ada6582..99ba2c5826e338b767127eae1ef48561fb990775 100644 (file)
@@ -189,6 +189,7 @@ GNUNET_NETWORK_socket_accept (const struct GNUNET_NETWORK_Handle *desc,
                               socklen_t * address_len)
 {
   struct GNUNET_NETWORK_Handle *ret;
+
   ret = GNUNET_malloc (sizeof (struct GNUNET_NETWORK_Handle));
   ret->fd = accept (desc->fd, address, address_len);
   if (ret->fd == INVALID_SOCKET)