At the same time, if you have an overflow here, it means that you are able to create an int array (a int[]) with a size which is greater than 2G (minus the offset).

Rémi

On 12/11/2014 08:23 PM, joe darcy wrote:
Hi Staffan,

I haven't examined the code for possible integer overflow cases, but it would be fundamentally safer if the values were promoted to long *before* the arithmetic rather than after. In other words, instead of

(long)(Unsafe.ARRAY_BYTE_BASE_OFFSET + off) // Overflow theoretically possible

use

(long)Unsafe.ARRAY_BYTE_BASE_OFFSET + off // No overflow worries with int inputs

-Joe

On 12/11/2014 11:19 AM, Staffan Friberg wrote:
Hi,

Here is a small fix that avoids calling deprecated sun.misc.Unsafe methods, which allows the @SuppressWarnings to be removed.

Bug: https://bugs.openjdk.java.net/browse/JDK-8067289
Webrev: http://cr.openjdk.java.net/~sfriberg/JDK-8067289/webrev.00

Regards,
Staffan


Reply via email to