< prev index next >

jdk/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp

Print this page

        

@@ -1441,24 +1441,23 @@
  */
 JNIEXPORT jint JNICALL Java_sun_security_mscapi_KeyStore_getKeyLength
   (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
     {
         // no cleanup required
     }
< prev index next >