From: Timo Sirainen Date: Thu, 9 May 2019 16:22:28 +0000 (+0300) Subject: lib: net_*() - Make sure sockaddr_union is always cleared X-Git-Tag: 2.3.7~159 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=862a92a70547c2e8c571ba2b03076faff42c893f;p=thirdparty%2Fdovecot%2Fcore.git lib: net_*() - Make sure sockaddr_union is always cleared Fixes scan-build warnings --- diff --git a/src/lib/net.c b/src/lib/net.c index 4be0dff8d8..99d7bdf69d 100644 --- a/src/lib/net.c +++ b/src/lib/net.c @@ -575,6 +575,7 @@ int net_accept(int fd, struct ip_addr *addr_r, in_port_t *port_r) i_assert(fd >= 0); + i_zero(&so); addrlen = sizeof(so); ret = accept(fd, &so.sa, &addrlen); @@ -695,6 +696,7 @@ int net_getsockname(int fd, struct ip_addr *addr, in_port_t *port) i_assert(fd >= 0); + i_zero(&so); addrlen = sizeof(so); if (getsockname(fd, &so.sa, &addrlen) == -1) return -1; @@ -716,6 +718,7 @@ int net_getpeername(int fd, struct ip_addr *addr, in_port_t *port) i_assert(fd >= 0); + i_zero(&so); addrlen = sizeof(so); if (getpeername(fd, &so.sa, &addrlen) == -1) return -1; @@ -735,6 +738,7 @@ int net_getunixname(int fd, const char **name_r) union sockaddr_union_unix so; socklen_t addrlen = sizeof(so); + i_zero(&so); if (getsockname(fd, &so.sa, &addrlen) < 0) return -1; if (so.un.sun_family != AF_UNIX) { @@ -1030,6 +1034,7 @@ int net_ipv6_mapped_ipv4_convert(const struct ip_addr *src, if (memcmp(src->u.ip6.s6_addr, v4_prefix, sizeof(v4_prefix)) != 0) return -1; + i_zero(dest); dest->family = AF_INET; memcpy(&dest->u.ip6, &src->u.ip6.s6_addr[3*4], 4); return 0;