From owner-freebsd-arm@freebsd.org Thu Jan 28 12:06:38 2016 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FE0BA70C3E for ; Thu, 28 Jan 2016 12:06:38 +0000 (UTC) (envelope-from amutu@amutu.com) Received: from mail-yk0-x22f.google.com (mail-yk0-x22f.google.com [IPv6:2607:f8b0:4002:c07::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D6A031F98 for ; Thu, 28 Jan 2016 12:06:37 +0000 (UTC) (envelope-from amutu@amutu.com) Received: by mail-yk0-x22f.google.com with SMTP id v14so27571943ykd.3 for ; Thu, 28 Jan 2016 04:06:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amutu-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=3TAi/qs5PVUu7TEis5OLofECCon+hAntcmDkOqOmbCQ=; b=Dq6OP7AMIutbfRpZ2DNtMmNeKb24kmvY/fxqheFGlBryeDs/1fRaxux9NQhfu5VX8j peI0DtZ08SisKJ/atJBLbm0wJ1EgbrtI2wO/3COpcBu5MlCU2UUDumbIsqXUyOhJGoWB 28Aj4+yLANQSucjdwysFi5+j8AAuKbA1sbubuU1e5LLjtDlFqTX/cd2c2Guh56c2/iTN mvhjvQafdHkiOnQCemv0F6sSPa+x5O6MfVmB+2CZge4CHSiz3CZlDZVtOnDpVAWSUfXx voDyjXeD3vsyjSI0XtHoHWYICrswvjmz6FQGo6GiarqDdhmOarIIcanOTSzYTlhW4JfE R8Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=3TAi/qs5PVUu7TEis5OLofECCon+hAntcmDkOqOmbCQ=; b=jtK5iyEwx+gCOVK8cuYMrrm4lm5Yr2/CmdEL/23+e/+CHxHC04/juHG9MXruprYhya fGJWa7DxNv9Uc1ukLbS+aIDh+/PsWdOBu+pcBXstqsDppYDH/SKiTnAF8S1frR/k+lBF BETrjUNQSCqalWXyBsLc1jHTErbv3NfVEy3T9NbmEgRSH93ERRSM2G128Og+1EhNnQhB zOTm/kCriWl/cWEGsksJBBVbpBzMIpcUO0aNrpCYgBrlcp4IoS8GfcNllajvENx/OUa5 WtmEb6NyJoSBrEoZbBIzLFxa1AshfJOxVogiuJ0W2tCmHIczpP+8dhN4fMKwGZ873Ns/ 44hw== X-Gm-Message-State: AG10YOR0n1F9P3wrjlA5zZMKY5iYCKSIFqg2QN3LpFPqOJVH22JiUhT+GiypRQWy3g54bg== X-Received: by 10.13.247.70 with SMTP id h67mr1181856ywf.3.1453982796840; Thu, 28 Jan 2016 04:06:36 -0800 (PST) Received: from mail-yk0-f171.google.com (mail-yk0-f171.google.com. [209.85.160.171]) by smtp.gmail.com with ESMTPSA id y130sm8251321ywc.4.2016.01.28.04.06.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jan 2016 04:06:35 -0800 (PST) Received: by mail-yk0-f171.google.com with SMTP id a85so27727196ykb.1; Thu, 28 Jan 2016 04:06:35 -0800 (PST) X-Received: by 10.129.44.212 with SMTP id s203mr1363880yws.280.1453982795406; Thu, 28 Jan 2016 04:06:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.37.79.6 with HTTP; Thu, 28 Jan 2016 04:06:16 -0800 (PST) In-Reply-To: <1453903433.42081.30.camel@freebsd.org> References: <1453862939.42081.25.camel@freebsd.org> <1453867724.42081.28.camel@freebsd.org> <1453903433.42081.30.camel@freebsd.org> From: Jov Date: Thu, 28 Jan 2016 20:06:16 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [Bug 206658] Bus error for pfctl -sa on rpi2 r294499 snap To: Ian Lepore Cc: freebsd-arm@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 12:06:38 -0000 bus error at the similar position: Program received signal SIGBUS, Bus error. 0x00021614 in print_host (addr=0x2065111a, port=15268, af=2 '\002', opts=1024) at /usr/src/sbin/pfctl/pf_print_state.c:178 warning: Source file is more recent than executable. 178 memcpy(&aw.v.a.addr, addr, sizeof(aw.v.a.addr)); Current language: auto; currently minimal (gdb) p addr $1 = (struct pf_addr *) 0x2065111a (gdb) p *addr $2 = {pfa = {v4 = {s_addr = 1912711360}, v6 = {__u6_addr = {__u6_addr8 = 0x2065111a "(\001r", __u6_addr16 = 0x2065111a, __u6_addr32 = 0x2065111a}}, addr8 = 0x2065111a "(\001r", addr16 = 0x2065111a, addr32 = 0x2065111a}} (gdb) p 0x2065111a $3 = 543494426 (gdb) Jov blog: http:amutu.com/blog 2016-01-27 22:03 GMT+08:00 Ian Lepore : > 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 > > 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 { > >