]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libsmb: Cleanup - Remove the last two sockaddr casts in namequery.c in name_query...
authorJeremy Allison <jra@samba.org>
Mon, 24 Aug 2020 18:57:59 +0000 (11:57 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 25 Aug 2020 16:21:32 +0000 (16:21 +0000)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Mulder <dmulder@samba.org>
source3/libsmb/namequery.c

index 7975e226f72384c16396d27bfe30d5a0c12f1e7a..a69f48d7ba0ac70418b3a23fb60ef68bbadaa5c0 100644 (file)
@@ -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; j<state->num_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;
                        }
                }