dns resolver: reorder sockaddr union to make initialization safe

some recent compilers have adopted a dubious interpretation of the C
specification for union initializers, that when the initialized member
is smaller than the size of the union, the remaining padding does not
have to be zero-initialized. in the interests of not depending on any
particular interpretation, place the larger member first so it's
initialized and ensures the whole object is zero-filled.
This commit is contained in:
Rich Felker
2025-05-05 09:23:32 -04:00
parent a34ca6ead1
commit 6915b34860
+1 -1
View File
@@ -83,8 +83,8 @@ int __res_msend_rc(int nqueries, const unsigned char *const *queries,
int fd;
int timeout, attempts, retry_interval, servfail_retry;
union {
struct sockaddr_in sin;
struct sockaddr_in6 sin6;
struct sockaddr_in sin;
} sa = {0}, ns[MAXNS] = {{0}};
socklen_t sl = sizeof sa.sin;
int nns = 0;