diff --git a/contrib/bsnmp/snmpd/main.c b/contrib/bsnmp/snmpd/main.c index 06df31dfdc4..ea87127abdd 100644 --- a/contrib/bsnmp/snmpd/main.c +++ b/contrib/bsnmp/snmpd/main.c @@ -1169,7 +1169,7 @@ recv_dgram(struct port_input *pi, struct in_addr *laddr) memcpy(laddr, CMSG_DATA(cmsg), sizeof(struct in_addr)); if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_CREDS) - memcpy(cred, CMSG_DATA(cmsg), sizeof(struct sockcred)); + cred = (struct sockcred *)CMSG_DATA(cmsg); } if (pi->cred) @@ -1207,7 +1207,7 @@ snmpd_input(struct port_input *pi, struct tport *tport) ret = recv_stream(pi); } else { - struct in_addr laddr; + struct in_addr *laddr; memset(cbuf, 0, CMSG_SPACE(sizeof(struct in_addr))); msg.msg_control = cbuf; @@ -1216,11 +1216,11 @@ snmpd_input(struct port_input *pi, struct tport *tport) cmsgp->cmsg_len = CMSG_LEN(sizeof(struct in_addr)); cmsgp->cmsg_level = IPPROTO_IP; cmsgp->cmsg_type = IP_SENDSRCADDR; - memcpy(&laddr, CMSG_DATA(cmsgp), sizeof(struct in_addr)); + laddr = (struct in_addr *)CMSG_DATA(cmsgp); - ret = recv_dgram(pi, &laddr); + ret = recv_dgram(pi, laddr); - if (laddr.s_addr == 0) { + if (laddr->s_addr == 0) { msg.msg_control = NULL; msg.msg_controllen = 0; } diff --git a/usr.sbin/bsnmpd/bsnmpd/Makefile b/usr.sbin/bsnmpd/bsnmpd/Makefile index 1cf4a8b9625..e4106e0a42a 100644 --- a/usr.sbin/bsnmpd/bsnmpd/Makefile +++ b/usr.sbin/bsnmpd/bsnmpd/Makefile @@ -47,6 +47,7 @@ MANFILTER= sed -e 's%@MODPATH@%${LIBDIR}/%g' \ -e 's%@DEFPATH@%${DEFSDIR}/%g' \ -e 's%@MIBSPATH@%${BMIBSDIR}/%g' +NO_WCAST_ALIGN= yes WARNS?= 6 .include