From 6a20296bc411e435f5c0974c1b1350f17a1a9770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Gallou=C3=ABt?= Date: Wed, 22 Jun 2016 17:54:17 +0000 Subject: [PATCH] Fix bad size in bind() --- mud.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mud.c b/mud.c index a9f0ff1..cc2ea60 100644 --- a/mud.c +++ b/mud.c @@ -575,8 +575,12 @@ int mud_create_socket (int port, int v4, int v6) if (fd == -1) return -1; + socklen_t addrlen = (addr.ss_family == AF_INET) + ? sizeof(struct sockaddr_in) + : sizeof(struct sockaddr_in6); + if (mud_setup_socket(fd, v4, v6) || - bind(fd, (struct sockaddr *)&addr, sizeof(addr))) { + bind(fd, (struct sockaddr *)&addr, addrlen)) { int err = errno; close(fd); errno = err;