From: Jeremy Allison Date: Mon, 24 Aug 2020 19:11:33 +0000 (-0700) Subject: s3: libads: Cleanup - Remove two more ugly const struct sockaddr * casts in get_kdc_i... X-Git-Tag: talloc-2.3.2~721 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce84521c7c0889c847a4d0a8b0c622333b7ca0da;p=thirdparty%2Fsamba.git s3: libads: Cleanup - Remove two more ugly const struct sockaddr * casts in get_kdc_ip_string(). Signed-off-by: Jeremy Allison Reviewed-by: David Mulder --- diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c index 5959da919b0..3fab68266f2 100644 --- a/source3/libads/kerberos.c +++ b/source3/libads/kerberos.c @@ -423,6 +423,7 @@ static char *get_kdc_ip_string(char *mem_ctx, size_t i; struct ip_service *ip_srv_site = NULL; struct ip_service *ip_srv_nonsite = NULL; + struct samba_sockaddr sa = {0}; int count_site = 0; int count_nonsite; size_t num_dcs; @@ -432,6 +433,7 @@ static char *get_kdc_ip_string(char *mem_ctx, char *result = NULL; struct netlogon_samlogon_response **responses = NULL; NTSTATUS status; + bool ok; char *kdc_str = talloc_asprintf(mem_ctx, "%s\t\tkdc = %s\n", "", print_canonical_sockaddr_with_port(mem_ctx, pss)); @@ -440,6 +442,11 @@ static char *get_kdc_ip_string(char *mem_ctx, return NULL; } + ok = sockaddr_storage_to_samba_sockaddr(&sa, pss); + if (!ok) { + goto out; + } + /* * First get the KDC's only in this site, the rest will be * appended later @@ -465,18 +472,30 @@ static char *get_kdc_ip_string(char *mem_ctx, num_dcs = 0; for (i = 0; i < count_site; i++) { - if (!sockaddr_equal( - (const struct sockaddr *)pss, - (const struct sockaddr *)&ip_srv_site[i].ss)) { + struct samba_sockaddr ip_sa = {0}; + + ok = sockaddr_storage_to_samba_sockaddr(&ip_sa, + &ip_srv_site[i].ss); + if (!ok) { + goto out; + } + + if (!sockaddr_equal(&sa.u.sa, &ip_sa.u.sa)) { add_sockaddr_unique(dc_addrs, &num_dcs, &ip_srv_site[i].ss); } } for (i = 0; i < count_nonsite; i++) { - if (!sockaddr_equal( - (const struct sockaddr *)pss, - (const struct sockaddr *)&ip_srv_nonsite[i].ss)) { + struct samba_sockaddr ip_sa = {0}; + + ok = sockaddr_storage_to_samba_sockaddr(&ip_sa, + &ip_srv_nonsite[i].ss); + if (!ok) { + goto out; + } + + if (!sockaddr_equal(&sa.u.sa, &ip_sa.u.sa)) { add_sockaddr_unique(dc_addrs, &num_dcs, &ip_srv_nonsite[i].ss); }