size_t maxbuf)
{
struct GNUNET_CONNECTION_Handle *ret;
- char addr[32];
+ char addr[128];
socklen_t addrlen;
struct GNUNET_NETWORK_Handle *sock;
int aret;
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));
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)