]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:winbindd: make use of samba_sockaddr add_one_dc_unique() to avoid warnings
authorStefan Metzmacher <metze@samba.org>
Tue, 1 Oct 2024 13:35:50 +0000 (15:35 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 5 Dec 2024 16:46:37 +0000 (16:46 +0000)
../../source3/winbindd/winbindd_cm.c: In function ‘add_one_dc_unique’:
../../source3/winbindd/winbindd_cm.c:1172:48: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
 1172 |                             (struct sockaddr *)(void *)&(*dcs)[i].ss,

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/winbindd/winbindd_cm.c

index ef7b70f400f619b7fb740635c489d2d16935b819..cffab6bd0352b309025e201f47f0306bba0a7bc8 100644 (file)
@@ -1072,11 +1072,14 @@ static bool add_one_dc_unique(TALLOC_CTX *mem_ctx, const char *domain_name,
        }
 
        /* Make sure there's no duplicates in the list */
-       for (i=0; i<*num; i++)
-               if (sockaddr_equal(
-                           (struct sockaddr *)(void *)&(*dcs)[i].ss,
-                           (struct sockaddr *)(void *)pss))
+       for (i=0; i<*num; i++) {
+               struct samba_sockaddr ss1 = { .u = { .ss = (*dcs)[i].ss, }};
+               struct samba_sockaddr ss2 = { .u = { .ss = *pss, }};
+
+               if (sockaddr_equal(&ss1.u.sa, &ss2.u.sa)) {
                        return False;
+               }
+       }
 
        *dcs = talloc_realloc(mem_ctx, *dcs, struct dc_name_ip, (*num)+1);