Module: wine Branch: master Commit: 9e8e14ed127fd5a017777cc7ac91087cdc59c72e URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e8e14ed127fd5a017777cc7ac...
Author: Juan Lang juan.lang@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;