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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user