mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
libdns: Clear struct sockaddr_storage by zero.
* dirmngr/dns.c (dns_resconf_pton): Clear SS. (dns_resconf_setiface): Clear ->IFACE. (dns_hints_root, send_query): Clear SS. -- POSIX requires clear the structure of struct sockaddr_in6. On macOS, in some case like bind, it is better to clear even for struct sockaddr_in. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
3e6ad302ea
commit
1c0b6681e4
@ -5549,6 +5549,7 @@ int dns_resconf_pton(struct sockaddr_storage *ss, const char *src) {
|
||||
unsigned short port = 0;
|
||||
int ch, af = AF_INET, error;
|
||||
|
||||
memset(ss, 0, sizeof *ss);
|
||||
while ((ch = *src++)) {
|
||||
switch (ch) {
|
||||
case ' ':
|
||||
@ -6311,6 +6312,7 @@ int dns_resconf_setiface(struct dns_resolv_conf *resconf, const char *addr, unsi
|
||||
int af = (strchr(addr, ':'))? AF_INET6 : AF_INET;
|
||||
int error;
|
||||
|
||||
memset(&resconf->iface, 0, sizeof (struct sockaddr_storage));
|
||||
if ((error = dns_pton(af, addr, dns_sa_addr(af, &resconf->iface, NULL))))
|
||||
return error;
|
||||
|
||||
@ -6622,6 +6624,7 @@ struct dns_hints *dns_hints_root(struct dns_resolv_conf *resconf, int *error_) {
|
||||
for (i = 0; i < lengthof(root_hints); i++) {
|
||||
af = root_hints[i].af;
|
||||
|
||||
memset(&ss, 0, sizeof ss);
|
||||
if ((error = dns_pton(af, root_hints[i].addr, dns_sa_addr(af, &ss, NULL))))
|
||||
goto error;
|
||||
|
||||
@ -10866,6 +10869,7 @@ static int send_query(int argc, char *argv[]) {
|
||||
struct dns_socket *so;
|
||||
int error, type;
|
||||
|
||||
memset(&ss, 0, sizeof ss);
|
||||
if (argc > 1) {
|
||||
ss.ss_family = (strchr(argv[1], ':'))? AF_INET6 : AF_INET;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user