Mercurial > hg > truffle
diff test/compiler/7184394/TestAESEncode.java @ 17910:03214612e77e
8035936: SIGBUS in StubRoutines::aesencryptBlock, solaris-sparc
Summary: Fix the arbitrary alignment issue in SPARC AES crypto stub routines.
Reviewed-by: kvn, iveresov
Contributed-by: shrinivas.joshi@oracle.com
author | kvn |
---|---|
date | Wed, 30 Apr 2014 14:14:01 -0700 |
parents | a3ecd773a7b9 |
children |
line wrap: on
line diff
--- a/test/compiler/7184394/TestAESEncode.java Thu May 01 15:02:46 2014 -0700 +++ b/test/compiler/7184394/TestAESEncode.java Wed Apr 30 14:14:01 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,14 +33,15 @@ public void run() { try { if (!noReinit) cipher.init(Cipher.ENCRYPT_MODE, key, algParams); + encode = new byte[encodeLength]; + if (testingMisalignment) { + int tempSize = cipher.update(input, encInputOffset, (msgSize - lastChunkSize), encode, encOutputOffset); + cipher.doFinal(input, (encInputOffset + msgSize - lastChunkSize), lastChunkSize, encode, (encOutputOffset + tempSize)); + } else { + cipher.doFinal(input, encInputOffset, msgSize, encode, encOutputOffset); + } if (checkOutput) { - // checked version creates new output buffer each time - encode = cipher.doFinal(input, 0, msgSize); compareArrays(encode, expectedEncode); - } else { - // non-checked version outputs to existing encode buffer for maximum speed - encode = new byte[cipher.getOutputSize(msgSize)]; - cipher.doFinal(input, 0, msgSize, encode); } } catch (Exception e) {