Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jan 2016 12:19:44 +0800
From:      Jov <amutu@amutu.com>
To:        Guy Yur <guyyur@gmail.com>, freebsd-pf@freebsd.org
Cc:        Ian Lepore <ian@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: [Bug 206658] Bus error for pfctl -sa on rpi2 r294499 snap
Message-ID:  <CADyrUxN02=%2BPoV81jyEa-hGR_szS6t==c=XKOhn9pdu-OnSGFA@mail.gmail.com>
In-Reply-To: <CAC67Hz8Oxzi_NqKP2ORx2u9GxgXio8ckbrmqh82DCDR38AQ_fw@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> <1453903433.42081.30.camel@freebsd.org> <CADyrUxPhubhCi6MPBO4eX4WEXCxbMvcz9ZJEzt36azw6dcH8eA@mail.gmail.com> <CAC67Hz8Oxzi_NqKP2ORx2u9GxgXio8ckbrmqh82DCDR38AQ_fw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This patch works=EF=BC=8Cthanks very much !

will these patches to be commited to the offical svn? I add freebsd-pf ML.


Jov
blog: http:amutu.com/blog <http://amutu.com/blog>;

2016-01-29 5:26 GMT+08:00 Guy Yur <guyyur@gmail.com>:

> Hi,
>
> On Thu, Jan 28, 2016 at 2:06 PM, Jov <amutu@amutu.com> wrote:
> > bus error at the similar position:
> >
> > Program received signal SIGBUS, Bus error.
> > 0x00021614 in print_host (addr=3D0x2065111a, port=3D15268, af=3D2 '\002=
',
> > opts=3D1024) 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 =3D (struct pf_addr *) 0x2065111a
> > ...
> >
> > Jov
>
> The compiler optimizes the memcpy to a series of ldr and str
> instructions and since addr is unaligned you still get SIGBUS.
>
> I encountered the same problem on a BeagleBone Black.
> https://lists.freebsd.org/pipermail/freebsd-arm/2014-January/007237.html
>
> non-intrustive patch with changes only in print_state()
> pfsync_state is __packed so the keys can be copied safely to
> stack variables which will be aligned (and addr inside it).
>
> https://github.com/guyyur/freebsd-src_patches/blob/master/pfctl_arm_segbu=
s__ver1_part1.patch
>
> Bug report with patch to separate pfsync and pfioc state
> structures but breaks backward compatibility:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D185617
>
> -- Guy
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADyrUxN02=%2BPoV81jyEa-hGR_szS6t==c=XKOhn9pdu-OnSGFA>