From: Jeremy Allison Date: Mon, 24 Aug 2020 18:23:53 +0000 (-0700) Subject: s3: libsmb: Cleanup - make name_status_lmhosts() use samba_sockaddr internally. X-Git-Tag: talloc-2.3.2~729 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d67c4a84dd978b388c7d26de7f4119f22a594f0e;p=thirdparty%2Fsamba.git s3: libsmb: Cleanup - make name_status_lmhosts() use samba_sockaddr internally. Use existing utility function instead of direct memcmp. Signed-off-by: Jeremy Allison Reviewed-by: David Mulder --- diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 23ee0b210e9..238af4800c9 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -928,9 +928,15 @@ static bool name_status_lmhosts(const struct sockaddr_storage *paddr, FILE *f; char *name; int name_type; - struct sockaddr_storage addr; + struct samba_sockaddr addr_in = {0}; + struct samba_sockaddr addr = {0}; + bool ok; - if (paddr->ss_family != AF_INET) { + ok = sockaddr_storage_to_samba_sockaddr(&addr_in, paddr); + if (!ok) { + return false; + } + if (addr_in.u.ss.ss_family != AF_INET) { return false; } @@ -939,16 +945,14 @@ static bool name_status_lmhosts(const struct sockaddr_storage *paddr, return false; } - while (getlmhostsent(talloc_tos(), f, &name, &name_type, &addr)) { - if (addr.ss_family != AF_INET) { + while (getlmhostsent(talloc_tos(), f, &name, &name_type, &addr.u.ss)) { + if (addr.u.ss.ss_family != AF_INET) { continue; } if (name_type != qname_type) { continue; } - if (memcmp(&((const struct sockaddr_in *)paddr)->sin_addr, - &((const struct sockaddr_in *)&addr)->sin_addr, - sizeof(struct in_addr)) == 0) { + if (sockaddr_equal(&addr_in.u.sa, &addr.u.sa)) { fstrcpy(pname, name); endlmhosts(f); return true;