Juan Lang : wintrust: Return error directly from SOFTPUB_LoadFileMessage.
Alexandre Julliard
julliard at winehq.org
Thu Jan 28 11:15:34 CST 2010
Module: wine
Branch: master
Commit: 9e8e14ed127fd5a017777cc7ac91087cdc59c72e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e8e14ed127fd5a017777cc7ac91087cdc59c72e
Author: Juan Lang <juan.lang at gmail.com>
Date: Wed Jan 27 10:25:48 2010 -0800
wintrust: Return error directly from SOFTPUB_LoadFileMessage.
---
dlls/wintrust/softpub.c | 54 ++++++++++++++++++++++++++++++----------------
1 files changed, 35 insertions(+), 19 deletions(-)
diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index 47b76b2..9d13b4a 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -323,35 +323,45 @@ static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
return ret;
}
-static BOOL SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
+static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
{
- BOOL ret;
+ DWORD err = ERROR_SUCCESS;
if (!data->pWintrustData->u.pFile)
{
- SetLastError(ERROR_INVALID_PARAMETER);
- ret = FALSE;
+ err = ERROR_INVALID_PARAMETER;
goto error;
}
- ret = SOFTPUB_OpenFile(data);
- if (!ret)
+ if (!SOFTPUB_OpenFile(data))
+ {
+ err = GetLastError();
goto error;
- ret = SOFTPUB_GetFileSubject(data);
- if (!ret)
+ }
+ if (!SOFTPUB_GetFileSubject(data))
+ {
+ err = GetLastError();
goto error;
- ret = SOFTPUB_GetSIP(data);
- if (!ret)
+ }
+ if (!SOFTPUB_GetSIP(data))
+ {
+ err = GetLastError();
goto error;
- ret = SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile,
- data->pWintrustData->u.pFile->pcwszFilePath);
- if (!ret)
+ }
+ if (!SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile,
+ data->pWintrustData->u.pFile->pcwszFilePath))
+ {
+ err = GetLastError();
goto error;
- ret = SOFTPUB_CreateStoreFromMessage(data);
- if (!ret)
+ }
+ if (!SOFTPUB_CreateStoreFromMessage(data))
+ {
+ err = GetLastError();
goto error;
- ret = SOFTPUB_DecodeInnerContent(data);
+ }
+ if (!SOFTPUB_DecodeInnerContent(data))
+ err = GetLastError();
error:
- return ret;
+ return err;
}
static BOOL SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
@@ -393,7 +403,8 @@ error:
HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
{
- BOOL ret;
+ BOOL ret = TRUE;
+ DWORD err = ERROR_SUCCESS;
TRACE("(%p)\n", data);
@@ -406,7 +417,7 @@ HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
ret = SOFTPUB_LoadCertMessage(data);
break;
case WTD_CHOICE_FILE:
- ret = SOFTPUB_LoadFileMessage(data);
+ err = SOFTPUB_LoadFileMessage(data);
break;
case WTD_CHOICE_CATALOG:
ret = SOFTPUB_LoadCatalogMessage(data);
@@ -420,6 +431,11 @@ HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
if (!ret)
data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] =
GetLastError();
+ else if (err)
+ {
+ data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] = err;
+ ret = FALSE;
+ }
TRACE("returning %d (%08x)\n", ret ? S_OK : S_FALSE,
data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV]);
return ret ? S_OK : S_FALSE;
More information about the wine-cvs
mailing list