Juan Lang : wintrust: Return error directly from SOFTPUB_GetMessageFromFile .
Alexandre Julliard
julliard at winehq.org
Thu Jan 28 11:15:35 CST 2010
Module: wine
Branch: master
Commit: 568b0025c7c2fc4e7b9af8bd4cbd756af8d8e1ee
URL: http://source.winehq.org/git/wine.git/?a=commit;h=568b0025c7c2fc4e7b9af8bd4cbd756af8d8e1ee
Author: Juan Lang <juan.lang at gmail.com>
Date: Wed Jan 27 10:35:07 2010 -0800
wintrust: Return error directly from SOFTPUB_GetMessageFromFile.
---
dlls/wintrust/softpub.c | 44 +++++++++++++++++++-------------------------
1 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index a6edfe2..680afcd 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -146,9 +146,10 @@ static DWORD SOFTPUB_GetSIP(CRYPT_PROVIDER_DATA *data)
/* Assumes data->u.pPDSip has been loaded, and data->u.pPDSip->pSip allocated.
* Calls data->u.pPDSip->pSip->pfGet to construct data->hMsg.
*/
-static BOOL SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file,
+static DWORD SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file,
LPCWSTR filePath)
{
+ DWORD err = ERROR_SUCCESS;
BOOL ret;
LPBYTE buf = NULL;
DWORD size = 0;
@@ -156,10 +157,7 @@ static BOOL SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file,
data->u.pPDSip->psSipSubjectInfo =
data->psPfns->pfnAlloc(sizeof(SIP_SUBJECTINFO));
if (!data->u.pPDSip->psSipSubjectInfo)
- {
- SetLastError(ERROR_OUTOFMEMORY);
- return FALSE;
- }
+ return ERROR_OUTOFMEMORY;
data->u.pPDSip->psSipSubjectInfo->cbSize = sizeof(SIP_SUBJECTINFO);
data->u.pPDSip->psSipSubjectInfo->pgSubjectType = &data->u.pPDSip->gSubject;
@@ -169,17 +167,11 @@ static BOOL SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file,
ret = data->u.pPDSip->pSip->pfGet(data->u.pPDSip->psSipSubjectInfo,
&data->dwEncoding, 0, &size, 0);
if (!ret)
- {
- SetLastError(TRUST_E_NOSIGNATURE);
- return FALSE;
- }
+ return TRUST_E_NOSIGNATURE;
buf = data->psPfns->pfnAlloc(size);
if (!buf)
- {
- SetLastError(ERROR_OUTOFMEMORY);
- return FALSE;
- }
+ return ERROR_OUTOFMEMORY;
ret = data->u.pPDSip->pSip->pfGet(data->u.pPDSip->psSipSubjectInfo,
&data->dwEncoding, 0, &size, buf);
@@ -188,12 +180,18 @@ static BOOL SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file,
data->hMsg = CryptMsgOpenToDecode(data->dwEncoding, 0, 0, data->hProv,
NULL, NULL);
if (data->hMsg)
+ {
ret = CryptMsgUpdate(data->hMsg, buf, size, TRUE);
+ if (!ret)
+ err = GetLastError();
+ }
}
+ else
+ err = GetLastError();
data->psPfns->pfnFree(buf);
- TRACE("returning %d\n", ret);
- return ret;
+ TRACE("returning %d\n", err);
+ return err;
}
static BOOL SOFTPUB_CreateStoreFromMessage(CRYPT_PROVIDER_DATA *data)
@@ -339,12 +337,10 @@ static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
err = SOFTPUB_GetSIP(data);
if (err)
goto error;
- if (!SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile,
- data->pWintrustData->u.pFile->pcwszFilePath))
- {
- err = GetLastError();
+ err = SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile,
+ data->pWintrustData->u.pFile->pcwszFilePath);
+ if (err)
goto error;
- }
if (!SOFTPUB_CreateStoreFromMessage(data))
{
err = GetLastError();
@@ -381,12 +377,10 @@ static DWORD SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
err = SOFTPUB_GetSIP(data);
if (err)
goto error;
- if (!SOFTPUB_GetMessageFromFile(data, catalog,
- data->pWintrustData->u.pCatalog->pcwszCatalogFilePath))
- {
- err = GetLastError();
+ err = SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile,
+ data->pWintrustData->u.pFile->pcwszFilePath);
+ if (err)
goto error;
- }
if (!SOFTPUB_CreateStoreFromMessage(data))
{
err = GetLastError();
More information about the wine-cvs
mailing list