Module Name: src Committed By: christos Date: Sun Aug 14 17:42:23 UTC 2011
Modified Files: src/usr.sbin/fwctl: Makefile fwcontrol.c Log Message: use memcpy to avoid type punned warnings To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/fwctl/Makefile cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/fwctl/fwcontrol.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/fwctl/Makefile diff -u src/usr.sbin/fwctl/Makefile:1.5 src/usr.sbin/fwctl/Makefile:1.6 --- src/usr.sbin/fwctl/Makefile:1.5 Tue Jun 21 22:49:45 2011 +++ src/usr.sbin/fwctl/Makefile Sun Aug 14 13:42:23 2011 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.5 2011/06/22 02:49:45 mrg Exp $ +# $NetBSD: Makefile,v 1.6 2011/08/14 17:42:23 christos Exp $ WARNS?=5 PROG= fwctl @@ -11,8 +11,3 @@ CPPFLAGS+=-I${.CURDIR} -I${SDIR} .include <bsd.prog.mk> - -# XXX -.if ${HAVE_GCC} == 45 -COPTS.fwcontrol.c+= -fno-strict-aliasing -.endif Index: src/usr.sbin/fwctl/fwcontrol.c diff -u src/usr.sbin/fwctl/fwcontrol.c:1.13 src/usr.sbin/fwctl/fwcontrol.c:1.14 --- src/usr.sbin/fwctl/fwcontrol.c:1.13 Tue Jan 4 15:45:13 2011 +++ src/usr.sbin/fwctl/fwcontrol.c Sun Aug 14 13:42:23 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcontrol.c,v 1.13 2011/01/04 20:45:13 christos Exp $ */ +/* $NetBSD: fwcontrol.c,v 1.14 2011/08/14 17:42:23 christos Exp $ */ /* * Copyright (C) 2002 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> //__FBSDID("$FreeBSD: src/usr.sbin/fwcontrol/fwcontrol.c,v 1.23 2006/10/26 22:33:38 imp Exp $"); -__RCSID("$NetBSD: fwcontrol.c,v 1.13 2011/01/04 20:45:13 christos Exp $"); +__RCSID("$NetBSD: fwcontrol.c,v 1.14 2011/08/14 17:42:23 christos Exp $"); #include <sys/param.h> #include <sys/malloc.h> @@ -91,8 +91,11 @@ static void fweui2eui64(const struct fw_eui64 *fweui, struct eui64 *eui) { - *(uint32_t*)&(eui->octet[0]) = htonl(fweui->hi); - *(uint32_t*)&(eui->octet[4]) = htonl(fweui->lo); + uint32_t hi, lo; + hi = htonl(fweui->hi); + lo = htonl(fweui->lo); + memcpy(&eui->octet[0], &hi, sizeof(hi)); + memcpy(&eui->octet[4], &lo, sizeof(lo)); } static void @@ -1027,8 +1030,11 @@ * Set the fwmem target for a node to argument "-m" */ if (set_fwmem_target) { - eui.hi = ntohl(*(uint32_t*)&(target.octet[0])); - eui.lo = ntohl(*(uint32_t*)&(target.octet[4])); + uint32_t hi, lo; + memcpy(&hi, &target.octet[0], sizeof(hi)); + memcpy(&lo, &target.octet[4], sizeof(lo)); + eui.hi = ntohl(hi); + eui.lo = ntohl(lo); sysctl_set_int("hw.fwmem.eui64_hi", eui.hi); sysctl_set_int("hw.fwmem.eui64_lo", eui.lo); }