]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libads: Cleanup - Remove two more ugly const struct sockaddr * casts in get_kdc_i...
authorJeremy Allison <jra@samba.org>
Mon, 24 Aug 2020 19:11:33 +0000 (12:11 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 25 Aug 2020 16:21:33 +0000 (16:21 +0000)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Mulder <dmulder@samba.org>
source3/libads/kerberos.c

index 5959da919b039f1ba2d0892a9e77cbde695aec93..3fab68266f289e87239e3fccc65551deb06687b5 100644 (file)
@@ -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);
                }