aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2011-12-17 11:06:22 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2011-12-17 11:06:22 +0000
commit1e629ba90fd563546f1c6db74b73f18266b32758 (patch)
tree2ecf830b8742ef91026649f45ae097bf2942e4f5 /contrib
parent5a8801b0eaf902bc7cd4480a5d0c1ddccca0541a (diff)
downloadsrc-1e629ba90fd563546f1c6db74b73f18266b32758.tar.gz
src-1e629ba90fd563546f1c6db74b73f18266b32758.zip
Adter r228571 unbreak architectures with strict alignment rules
by copying rather than casting.
Notes
Notes: svn path=/head/; revision=228623
Diffstat (limited to 'contrib')
-rw-r--r--contrib/bsnmp/snmp_mibII/mibII.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/contrib/bsnmp/snmp_mibII/mibII.c b/contrib/bsnmp/snmp_mibII/mibII.c
index 9258a5d40d0b..27ebeded6a1f 100644
--- a/contrib/bsnmp/snmp_mibII/mibII.c
+++ b/contrib/bsnmp/snmp_mibII/mibII.c
@@ -941,7 +941,7 @@ handle_rtmsg(struct rt_msghdr *rtm)
{
struct sockaddr *addrs[RTAX_MAX];
struct if_msghdr *ifm;
- struct ifa_msghdr *ifam;
+ struct ifa_msghdr ifam;
struct ifma_msghdr *ifmam;
#ifdef RTM_IFANNOUNCE
struct if_announcemsghdr *ifan;
@@ -961,17 +961,17 @@ handle_rtmsg(struct rt_msghdr *rtm)
switch (rtm->rtm_type) {
case RTM_NEWADDR:
- ifam = (struct ifa_msghdr *)rtm;
- mib_extract_addrs(ifam->ifam_addrs, (u_char *)(ifam + 1), addrs);
+ memcpy(&ifam, rtm, sizeof(ifam));
+ mib_extract_addrs(ifam.ifam_addrs, (u_char *)(&ifam + 1), addrs);
if (addrs[RTAX_IFA] == NULL || addrs[RTAX_NETMASK] == NULL)
break;
sa = (struct sockaddr_in *)(void *)addrs[RTAX_IFA];
if ((ifa = mib_find_ifa(sa->sin_addr)) == NULL) {
/* unknown address */
- if ((ifp = mib_find_if_sys(ifam->ifam_index)) == NULL) {
+ if ((ifp = mib_find_if_sys(ifam.ifam_index)) == NULL) {
syslog(LOG_WARNING, "RTM_NEWADDR for unknown "
- "interface %u", ifam->ifam_index);
+ "interface %u", ifam.ifam_index);
break;
}
if ((ifa = alloc_ifa(ifp->index, sa->sin_addr)) == NULL)
@@ -988,8 +988,8 @@ handle_rtmsg(struct rt_msghdr *rtm)
break;
case RTM_DELADDR:
- ifam = (struct ifa_msghdr *)rtm;
- mib_extract_addrs(ifam->ifam_addrs, (u_char *)(ifam + 1), addrs);
+ memcpy(&ifam, rtm, sizeof(ifam));
+ mib_extract_addrs(ifam.ifam_addrs, (u_char *)(&ifam + 1), addrs);
if (addrs[RTAX_IFA] == NULL)
break;