Mercurial > hg > truffle
diff test/compiler/7184394/TestAESDecode.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/TestAESDecode.java Thu May 01 15:02:46 2014 -0700 +++ b/test/compiler/7184394/TestAESDecode.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) dCipher.init(Cipher.DECRYPT_MODE, key, algParams); + decode = new byte[decodeLength]; + if (testingMisalignment) { + int tempSize = dCipher.update(encode, encOutputOffset, (decodeMsgSize - lastChunkSize), decode, decOutputOffset); + dCipher.doFinal(encode, (encOutputOffset + decodeMsgSize - lastChunkSize), lastChunkSize, decode, (decOutputOffset + tempSize)); + } else { + dCipher.doFinal(encode, encOutputOffset, decodeMsgSize, decode, decOutputOffset); + } if (checkOutput) { - // checked version creates new output buffer each time - decode = dCipher.doFinal(encode, 0, encode.length); compareArrays(decode, expectedDecode); - } else { - // non-checked version outputs to existing encode buffer for maximum speed - decode = new byte[dCipher.getOutputSize(encode.length)]; - dCipher.doFinal(encode, 0, encode.length, decode); } } catch (Exception e) {