]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Replace casts with use of sa2sin and sa2sin6
authorRobbie Harwood <rharwood@redhat.com>
Fri, 17 Feb 2017 22:16:19 +0000 (17:16 -0500)
committerGreg Hudson <ghudson@mit.edu>
Wed, 12 Apr 2017 16:07:41 +0000 (12:07 -0400)
src/lib/krb5/os/hostaddr.c
src/lib/krb5/os/localaddr.c
src/lib/rpc/pmap_rmt.c
src/slave/kprop_util.c

index 22f6ad6d48b9ad05eade1a4916b2ca645ddc1360..d7a4a763012d6c93719ddda2498ebb80cbb42ff9 100644 (file)
@@ -83,12 +83,12 @@ k5_os_hostaddr(krb5_context context, const char *name,
         switch (aip->ai_addr->sa_family) {
         case AF_INET:
             addrlen = sizeof (struct in_addr);
-            ptr = &((struct sockaddr_in *)aip->ai_addr)->sin_addr;
+            ptr = &sa2sin(aip->ai_addr)->sin_addr;
             atype = ADDRTYPE_INET;
             break;
         case AF_INET6:
             addrlen = sizeof (struct in6_addr);
-            ptr = &((struct sockaddr_in6 *)aip->ai_addr)->sin6_addr;
+            ptr = &sa2sin6(aip->ai_addr)->sin6_addr;
             atype = ADDRTYPE_INET6;
             break;
         default:
index 9f7765254467e21dbbffb9183d9cf1dc49dc0daa..21bc719d2c7eb9add06bb9fd81e2f84fd0fadfb8 100644 (file)
@@ -181,11 +181,11 @@ is_loopback_address(struct sockaddr *sa)
 {
     switch (sa->sa_family) {
     case AF_INET: {
-        struct sockaddr_in *s4 = (struct sockaddr_in *)sa;
+        struct sockaddr_in *s4 = sa2sin(sa);
         return s4->sin_addr.s_addr == htonl(INADDR_LOOPBACK);
     }
     case AF_INET6: {
-        struct sockaddr_in6 *s6 = (struct sockaddr_in6 *)sa;
+        struct sockaddr_in6 *s6 = sa2sin6(sa);
         return IN6_IS_ADDR_LOOPBACK(&s6->sin6_addr);
     }
     default:
@@ -239,16 +239,17 @@ printifaddr(struct ifaddrs *ifp)
 #include <stdlib.h>
 
 static int
-addr_eq (const struct sockaddr *s1, const struct sockaddr *s2)
+addr_eq (struct sockaddr *s1, struct sockaddr *s2)
 {
     if (s1->sa_family != s2->sa_family)
         return 0;
-#define CMPTYPE(T,F) (!memcmp(&((const T*)s1)->F,&((const T*)s2)->F,sizeof(((const T*)s1)->F)))
     switch (s1->sa_family) {
     case AF_INET:
-        return CMPTYPE (struct sockaddr_in, sin_addr);
+        return !memcmp(&sa2sin(s1)->sin_addr, &sa2sin(s2)->sin_addr,
+                       sizeof(sa2sin(s1)->sin_addr));
     case AF_INET6:
-        return CMPTYPE (struct sockaddr_in6, sin6_addr);
+        return !memcmp(&sa2sin6(s1)->sin6_addr, &sa2sin6(s2)->sin6_addr,
+                       sizeof(sa2sin6(s1)->sin6_addr));
     default:
         /* Err on side of duplicate listings.  */
         return 0;
@@ -1183,14 +1184,14 @@ add_addr (void *P_data, struct sockaddr *a)
 #ifdef HAVE_NETINET_IN_H
     case AF_INET:
         address = make_addr (ADDRTYPE_INET, sizeof (struct in_addr),
-                             &((const struct sockaddr_in *) a)->sin_addr);
+                             &sa2sin(a)->sin_addr);
         if (address == NULL)
             data->mem_err++;
         break;
 
     case AF_INET6:
     {
-        const struct sockaddr_in6 *in = (const struct sockaddr_in6 *) a;
+        const struct sockaddr_in6 *in = sa2sin6(a);
 
         if (IN6_IS_ADDR_LINKLOCAL (&in->sin6_addr))
             break;
index cd0b3095ae4ff1f0babbb5d800b57e29cd36f6d0..4829e3ff06c35fe0a242f0a7b0ec35474ee93ee1 100644 (file)
@@ -60,6 +60,7 @@ static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro";
 #include <arpa/inet.h>
 #define MAX_BROADCAST_SIZE 1400
 #include <port-sockets.h>
+#include "socket-utils.h"
 
 static struct timeval timeout = { 3, 0 };
 
@@ -208,12 +209,11 @@ getbroadcastnets(
                        if (ioctl(sock, SIOCGIFBRDADDR, (char *)&ifreq) < 0) {
                                addrs[i++].s_addr = INADDR_ANY;
                        } else {
-                               addrs[i++] = ((struct sockaddr_in*)
-                                 &ifreq.ifr_addr)->sin_addr;
+                               addrs[i++] = sa2sin(&ifreq.ifr_addr)->sin_addr;
                        }
 #else /* 4.2 BSD */
                        struct sockaddr_in *sockin;
-                       sockin = (struct sockaddr_in *)&ifr->ifr_addr;
+                       sockin = sa2sin(&ifr->ifr_addr);
                        addrs[i++] = inet_makeaddr(inet_netof
                          (sockin->sin_addr.s_addr), INADDR_ANY);
 #endif
index f182554e6171916fdb8d9fbf57ed58effedef9ee..7e1ec229d040fe56beafd7b9fbc41574fb548d2a 100644 (file)
@@ -45,12 +45,12 @@ sockaddr2krbaddr(krb5_context context, int family, struct sockaddr *sa,
 
     addr.magic = KV5M_ADDRESS;
     if (family == AF_INET) {
-        struct sockaddr_in *sa4 = (struct sockaddr_in *) sa;
+        struct sockaddr_in *sa4 = sa2sin(sa);
         addr.addrtype = ADDRTYPE_INET;
         addr.length = sizeof(sa4->sin_addr);
         addr.contents = (krb5_octet *) &sa4->sin_addr;
     } else if (family == AF_INET6) {
-        struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *) sa;
+        struct sockaddr_in6 *sa6 = sa2sin6(sa);
         if (IN6_IS_ADDR_V4MAPPED(&sa6->sin6_addr)) {
             addr.addrtype = ADDRTYPE_INET;
             addr.contents = (krb5_octet *) &sa6->sin6_addr + 12;