Juan Lang : rsaenh: Only set key length on successful retrieval of hash value.

Alexandre Julliard julliard at winehq.org
Mon Jan 17 10:59:45 CST 2011


Module: wine
Branch: master
Commit: 786c57d323179712bffaecd7da27a528e940048e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=786c57d323179712bffaecd7da27a528e940048e

Author: Juan Lang <juan.lang at gmail.com>
Date:   Sun Jan 16 12:01:47 2011 -0800

rsaenh: Only set key length on successful retrieval of hash value.

---

 dlls/rsaenh/rsaenh.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index 50954c5..df83f5a 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -4216,6 +4216,7 @@ BOOL WINAPI RSAENH_CPSetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa
 
             if (pCryptKey->aiAlgid == CALG_HMAC && !pCryptKey->dwKeyLen) {
                 HCRYPTHASH hKeyHash;
+                DWORD keyLen;
 
                 if (!RSAENH_CPCreateHash(hProv, ((PHMAC_INFO)pbData)->HashAlgid, 0, 0,
                     &hKeyHash))
@@ -4226,13 +4227,14 @@ BOOL WINAPI RSAENH_CPSetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa
                     RSAENH_CPDestroyHash(hProv, hKeyHash);
                     return FALSE;
                 }
-                pCryptKey->dwKeyLen = sizeof(pCryptKey->abKeyValue);
+                keyLen = sizeof(pCryptKey->abKeyValue);
                 if (!RSAENH_CPGetHashParam(hProv, hKeyHash, HP_HASHVAL, pCryptKey->abKeyValue,
-                    &pCryptKey->dwKeyLen, 0))
+                    &keyLen, 0))
                 {
                     RSAENH_CPDestroyHash(hProv, hKeyHash);
                     return FALSE;
                 }
+                pCryptKey->dwKeyLen = keyLen;
                 RSAENH_CPDestroyHash(hProv, hKeyHash);
             }
             for (i=0; i<RSAENH_MIN(pCryptKey->dwKeyLen,pCryptHash->pHMACInfo->cbInnerString); i++) {




More information about the wine-cvs mailing list