RFR [9] 8034181: SIGBUS at Java_sun_nio_ch_SctpChannelImpl_receive0

Chris Hegarty chris.hegarty at oracle.com
Sat Mar 22 08:24:38 UTC 2014


On 22 Mar 2014, at 08:19, Alan Bateman <Alan.Bateman at oracle.com> wrote:

> On 22/03/2014 08:13, Chris Hegarty wrote:
>> The native SCTP implementation assumes that the given byte buffer ( buffer address + position ) is memory aligned. It re-uses the buffer for handling notifications from the SCTP Stack ( as well as for reading data off the socket ). This can result in a SIBGUS on sparc(v9) if the address is not 4 byte aligned [1].
>> 
>> The trivial solution is to copy the SCTP notification into a stack allocated buffer, for handling, if the given address is not 4 byte aligned.
>> 
>> http://cr.openjdk.java.net/~chegar/8034181/webev.00/webrev/
>> 
> It looks like the stack allocated buffer will be out of scope when you use it and I assume it would be safer to declare buf at L465 or so.

Good point. I did think about this, but wasn’t sure if it would cause problems. I’ll move it.

-Chris.

> 
> -Alan.



More information about the net-dev mailing list