|
From: Jeremie Courreges-A. <jc...@wx...> - 2017-06-10 15:25:18
|
Gert Doering <ge...@gr...> writes: > Hi, > > On Fri, May 26, 2017 at 04:30:53PM +0200, Jeremie Courreges-Anglas wrote: >> I am the maintainer of openvpn in the OpenBSD ports tree. Here's >> a report from Stefan Sperling (Cc'ed). >> >> > An openvpn server running on OpenBSD/sparc64 6.1 crashes when a client >> > connects and starts doing traffic. Is anyone else seeing this? > > Thanks for the report. I'll look into it. > > Copying around the IP header doesn't feel like the proper solution, > though - it's basically replacing an unaligned access somewhere with > a larger (unaligned!) mem copy, where most likely changing a word > access to 2x byte access (etc) might achieve the same thing without > copying. Agreed, there's probably a better way to handle this. The best workaround I can think of would be using openvpn_iphdr / OPENVPN_IPH_GET_VER, like the NetBSD code does. It accesses only the first byte of the buffer and thus shouldn't be affected by alignement constraints. This patch has been successfully tested (v4 and v6 traffic) by Stefan Sperling on OpenBSD/sparc64, on top of the openvpn-2.4.2 release. |