From: Tobias Heider Date: Tue, 6 Jul 2021 15:40:58 +0000 (+0200) Subject: Properly initialize sockaddr length on systems with sin_len. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c0e75c34e43743e57cd730383e3716ce9e3b519;p=libevent Properly initialize sockaddr length on systems with sin_len. --- diff --git a/evdns.c b/evdns.c index 0f1c3595..782a4123 100644 --- a/evdns.c +++ b/evdns.c @@ -3325,6 +3325,9 @@ evdns_base_nameserver_add(struct evdns_base *base, unsigned long int address) sin.sin_addr.s_addr = address; sin.sin_port = htons(53); sin.sin_family = AF_INET; +#ifdef EVENT__HAVE_STRUCT_SOCKADDR_IN_SIN_LEN + sin.sin_len = sizeof(sin); +#endif EVDNS_LOCK(base); res = evdns_nameserver_add_impl_(base, (struct sockaddr*)&sin, sizeof(sin)); EVDNS_UNLOCK(base); @@ -5421,6 +5424,9 @@ evdns_getaddrinfo_gotresolve(int result, char type, int count, memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(data->port); +#ifdef EVENT__HAVE_STRUCT_SOCKADDR_IN_SIN_LEN + sin.sin_len = sizeof(sin); +#endif sa = (struct sockaddr *)&sin; socklen = sizeof(sin); @@ -5430,6 +5436,9 @@ evdns_getaddrinfo_gotresolve(int result, char type, int count, memset(&sin6, 0, sizeof(sin6)); sin6.sin6_family = AF_INET6; sin6.sin6_port = htons(data->port); +#ifdef EVENT__HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN + sin6.sin6_len = sizeof(sin6); +#endif sa = (struct sockaddr *)&sin6; socklen = sizeof(sin6);