Module: wine Branch: master Commit: b377f83453cf82d5274aeebc233702e72a100a4e URL: http://source.winehq.org/git/wine.git/?a=commit;h=b377f83453cf82d5274aeebc23...
Author: Juan Lang juan.lang@gmail.com Date: Tue Feb 15 11:16:25 2011 -0800
crypt32: Don't assume a function succeeded (clang).
---
dlls/crypt32/msg.c | 46 +++++++++++++++++++++++++--------------------- 1 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c index 97860e5..50c1bee 100644 --- a/dlls/crypt32/msg.c +++ b/dlls/crypt32/msg.c @@ -1559,38 +1559,42 @@ static BOOL WINAPI CRYPT_ExportKeyTrans( X509_ASN_ENCODING, &keyInfo, &expKey); if (ret) { - BYTE *keyBlob; DWORD size;
ret = CryptExportKey(pContentEncryptInfo->hContentEncryptKey, expKey, SIMPLEBLOB, 0, NULL, &size); - keyBlob = CryptMemAlloc(size); - if (keyBlob) + if (ret) { - ret = CryptExportKey(pContentEncryptInfo->hContentEncryptKey, - expKey, SIMPLEBLOB, 0, keyBlob, &size); - if (ret) - { - DWORD head = sizeof(BLOBHEADER) + sizeof(ALG_ID); + BYTE *keyBlob;
- pKeyTransEncryptInfo->EncryptedKey.pbData = - CryptMemAlloc(size - head); - if (pKeyTransEncryptInfo->EncryptedKey.pbData) + keyBlob = CryptMemAlloc(size); + if (keyBlob) + { + ret = CryptExportKey(pContentEncryptInfo->hContentEncryptKey, + expKey, SIMPLEBLOB, 0, keyBlob, &size); + if (ret) { - DWORD i, k = 0; + DWORD head = sizeof(BLOBHEADER) + sizeof(ALG_ID); + + pKeyTransEncryptInfo->EncryptedKey.pbData = + CryptMemAlloc(size - head); + if (pKeyTransEncryptInfo->EncryptedKey.pbData) + { + DWORD i, k = 0;
- pKeyTransEncryptInfo->EncryptedKey.cbData = size - head; - for (i = size - 1; i >= head; --i, ++k) - pKeyTransEncryptInfo->EncryptedKey.pbData[k] = - keyBlob[i]; + pKeyTransEncryptInfo->EncryptedKey.cbData = size - head; + for (i = size - 1; i >= head; --i, ++k) + pKeyTransEncryptInfo->EncryptedKey.pbData[k] = + keyBlob[i]; + } + else + ret = FALSE; } - else - ret = FALSE; + CryptMemFree(keyBlob); } - CryptMemFree(keyBlob); + else + ret = FALSE; } - else - ret = FALSE; CryptDestroyKey(expKey); }