From 39cb3c8bf566d4835e9103829628631ab879518d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 20 Jun 2010 15:13:57 +0000 Subject: [PATCH] fix --- src/util/connection.c | 5 +++-- src/util/network.c | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util/connection.c b/src/util/connection.c index 1f2624a28..a855bd1ec 100644 --- a/src/util/connection.c +++ b/src/util/connection.c @@ -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)); diff --git a/src/util/network.c b/src/util/network.c index a054709d9..99ba2c582 100644 --- a/src/util/network.c +++ b/src/util/network.c @@ -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) -- 2.25.1