--- old/jdk/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp 2015-12-16 21:11:33.337735509 +0100 +++ new/jdk/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp 2015-12-16 21:11:33.153735506 +0100 @@ -1443,20 +1443,19 @@ (JNIEnv *env, jobject obj, jlong hKey) { DWORD dwDataLen = sizeof(DWORD); - BYTE pbData[sizeof(DWORD)]; DWORD length = 0; __try { // Get key length (in bits) //TODO - may need to use KP_BLOCKLEN instead? - if (!(::CryptGetKeyParam((HCRYPTKEY) hKey, KP_KEYLEN, (BYTE *)pbData, &dwDataLen, + // pbData must be a pointer to a DWORD value with KP_KEYLEN + if (!(::CryptGetKeyParam((HCRYPTKEY) hKey, KP_KEYLEN, (BYTE *)&length, &dwDataLen, 0))) { ThrowException(env, KEY_EXCEPTION, GetLastError()); __leave; } - length = (DWORD) pbData; } __finally {