From: Jeremy Allison Date: Mon, 24 Aug 2020 18:57:59 +0000 (-0700) Subject: s3: libsmb: Cleanup - Remove the last two sockaddr casts in namequery.c in name_query... X-Git-Tag: talloc-2.3.2~724 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=189c741052f09ec2fd1aff52cdd006ae5a42af20;p=thirdparty%2Fsamba.git s3: libsmb: Cleanup - Remove the last two sockaddr casts in namequery.c in name_query_validator(). Signed-off-by: Jeremy Allison Reviewed-by: David Mulder --- diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 7975e226f72..a69f48d7ba0 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -1484,6 +1484,8 @@ static bool name_query_validator(struct packet_struct *p, void *private_data) uint16_t flags; struct in_addr ip; struct sockaddr_storage addr; + struct samba_sockaddr sa = {0}; + bool ok; int j; flags = RSVAL(&nmb->answers->rdata[i*6], 0); @@ -1492,14 +1494,24 @@ static bool name_query_validator(struct packet_struct *p, void *private_data) putip((char *)&ip,&nmb->answers->rdata[2+i*6]); in_addr_to_sockaddr_storage(&addr, ip); - if (is_zero_addr(&addr)) { + ok = sockaddr_storage_to_samba_sockaddr(&sa, &addr); + if (!ok) { + continue; + } + + if (is_zero_addr(&sa.u.ss)) { continue; } for (j=0; jnum_addrs; j++) { - if (sockaddr_equal( - (struct sockaddr *)(void *)&addr, - (struct sockaddr *)(void *)&state->addrs[j])) { + struct samba_sockaddr sa_j = {0}; + + ok = sockaddr_storage_to_samba_sockaddr(&sa_j, + &state->addrs[j]); + if (!ok) { + continue; + } + if (sockaddr_equal(&sa.u.sa, &sa_j.u.sa)) { break; } }