On Mon, Jun 13, 2005 at 09:23:50PM +0000, Marcel Moolenaar wrote: > Synopsis: Unaligned Reference with pf on 5.4/IA64 > > Responsible-Changed-From-To: freebsd-net->freebsd-pf > Responsible-Changed-By: marcel > Responsible-Changed-When: Mon Jun 13 21:22:54 GMT 2005 > Responsible-Changed-Why: > Move to a more pf-focussed responsible party. > > http://www.freebsd.org/cgi/query-pr.cgi?pr=81284
If I understand the problem correctly, there is an underlying network-generic question I'd like to ask here. When a function in the kernel gets passed a struct ip pointer, can it assume that the struct ip object pointed to is properly aligned? Or should it assume that this is not the case, and extract members more carefully? We can fix the access in pf of course, but if other functions rightfully count on struct ip objects being properly aligned, this might simply crash outside of pf, too. In short, is the problem that bridge doesn't properly align the struct ip object (which I can try to fix, too), or that pf assumes that such objects should be aligned? On OpenBSD's 64-bit architectures with varying alignment rules, this has never occured, I think because the struct ip objects (and, hence, their ip_src/dst members) are kept aligned. If I'm way off, and proper alignment of struct ip objects does not guarantee proper alignment of the ip_src/dst members as 32-bit unsigneds, please explain. If ia64 is different from other 64-bit architectures (of which I only know amd64, sparc64 and alpha), please explain what alignment rules there are for u_int32_t. Daniel _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"