Skip to content

Commit

Permalink
Replace casts with use of sa2sin and sa2sin6
Browse files Browse the repository at this point in the history
  • Loading branch information
frozencemetery authored and greghudson committed Apr 12, 2017
1 parent ab70f35 commit d225fb9
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/lib/krb5/os/hostaddr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
17 changes: 9 additions & 8 deletions src/lib/krb5/os/localaddr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
6 changes: 3 additions & 3 deletions src/lib/rpc/pmap_rmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 };

Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions src/slave/kprop_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit d225fb9

Please sign in to comment.