Date: Wed, 27 Jan 2016 07:03:53 -0700 From: Ian Lepore <ian@freebsd.org> To: Jov <amutu@amutu.com> Cc: freebsd-arm@freebsd.org Subject: Re: [Bug 206658] Bus error for pfctl -sa on rpi2 r294499 snap Message-ID: <1453903433.42081.30.camel@freebsd.org> In-Reply-To: <CADyrUxO-X3f6gXDHSKZ1Xy5PFxtZrsM0kiJrnN5MPhaAC5MZkA@mail.gmail.com> References: <bug-206658-7@https.bugs.freebsd.org/bugzilla/> <1453862939.42081.25.camel@freebsd.org> <CADyrUxPcndOaeUn_UcDN4F=N5XHsby-wQmLvRfUcYNTjNJPUiQ@mail.gmail.com> <1453867724.42081.28.camel@freebsd.org> <CADyrUxO-X3f6gXDHSKZ1Xy5PFxtZrsM0kiJrnN5MPhaAC5MZkA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Wed, 2016-01-27 at 20:34 +0800, Jov wrote:
> Warning: Object directory not changed from original
> /usr/src/sbin/pfctl
> cc -O -pipe -mfloat-abi=softfp -Wall -Wmissing-prototypes
> -Wno-uninitialized -Wstrict-prototypes -DENABLE_ALTQ
> -I/usr/src/sbin/pfctl
> -DWITH_INET6 -DWITH_INET -g -std=gnu99 -Wsystem-headers -Werror -Wall
> -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body
> -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological
> -compare
> -Wno-unused-value -Wno-parentheses-equality -Wno-unuse function
> -Wno-enum-conversion -Wno-unused-local-typedef -Wno-switch -Wno
> -switch-enum
> -Wno-knr-promoted-parameter -Qunused-arguments -c pf_print_state.c
> -o
> pf_print_state.o
> pf_print_state.c:149:25: error: passing 'struct in_addr' to parameter
> of
> incompatible type 'const void *'
> memcpy(&sin.sin_addr, addr->v4,
> sizeof(sin.sin_addr));
> ^~~~~~~~
> /usr/include/string.h:62:56: note: passing argument to parameter here
> void *memcpy(void * __restrict, const void * __restrict, size_t);
> ^
> pf_print_state.c:160:27: error: passing 'struct in6_addr' to
> parameter of
> incompatible type 'const void *'
> memcpy(&sin6.sin6_addr, addr->v6,
> sizeof(sin6.sin6_addr));
> ^~~~~~~~
> /usr/include/string.h:62:56: note: passing argument to parameter here
> void *memcpy(void * __restrict, const void * __restrict, size_t);
> ^
> 2 errors generated.
> *** Error code 1
>
> Stop.
> make: stopped in /usr/src/sbin/pfctl
>
Oops, sorry about that, try this one...
-- Ian
[-- Attachment #2 --]
Index: sbin/pfctl/pf_print_state.c
===================================================================
--- sbin/pfctl/pf_print_state.c (revision 294860)
+++ sbin/pfctl/pf_print_state.c (working copy)
@@ -146,7 +146,7 @@ print_name(struct pf_addr *addr, sa_family_t af)
memset(&sin, 0, sizeof(sin));
sin.sin_len = sizeof(sin);
sin.sin_family = AF_INET;
- sin.sin_addr = addr->v4;
+ memcpy(&sin.sin_addr, &addr->v4, sizeof(sin.sin_addr));
getnameinfo((struct sockaddr *)&sin, sin.sin_len,
host, sizeof(host), NULL, 0, NI_NOFQDN);
break;
@@ -157,7 +157,7 @@ print_name(struct pf_addr *addr, sa_family_t af)
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_len = sizeof(sin6);
sin6.sin6_family = AF_INET6;
- sin6.sin6_addr = addr->v6;
+ memcpy(&sin6.sin6_addr, &addr->v6, sizeof(sin6.sin6_addr));
getnameinfo((struct sockaddr *)&sin6, sin6.sin6_len,
host, sizeof(host), NULL, 0, NI_NOFQDN);
break;
@@ -175,7 +175,7 @@ print_host(struct pf_addr *addr, u_int16_t port, s
struct pf_addr_wrap aw;
memset(&aw, 0, sizeof(aw));
- aw.v.a.addr = *addr;
+ memcpy(&aw.v.a.addr, addr, sizeof(aw.v.a.addr));
if (af == AF_INET)
aw.v.a.mask.addr32[0] = 0xffffffff;
else {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1453903433.42081.30.camel>
