Juan Lang : wintrust: Correct GenericChainCertificateTrust' s handling of WINTRUST_CreateChainForSigner's return value.
Module: wine Branch: master Commit: 2f836649816764cd8f4af5779baec6561d430e00 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2f836649816764cd8f4af5779b... Author: Juan Lang <juan.lang(a)gmail.com> Date: Mon Mar 1 08:51:47 2010 -0800 wintrust: Correct GenericChainCertificateTrust's handling of WINTRUST_CreateChainForSigner's return value. --- dlls/wintrust/softpub.c | 25 ++++++++++--------------- 1 files changed, 10 insertions(+), 15 deletions(-) diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c index f753c93..9fa0d05 100644 --- a/dlls/wintrust/softpub.c +++ b/dlls/wintrust/softpub.c @@ -845,7 +845,7 @@ HRESULT WINAPI WintrustCertificateTrust(CRYPT_PROVIDER_DATA *data) HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) { - BOOL ret; + DWORD err; WTD_GENERIC_CHAIN_POLICY_DATA *policyData = data->pWintrustData->pPolicyCallbackData; @@ -854,15 +854,11 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) if (policyData && policyData->u.cbSize != sizeof(WTD_GENERIC_CHAIN_POLICY_CREATE_INFO)) { - SetLastError(ERROR_INVALID_PARAMETER); - ret = FALSE; + err = ERROR_INVALID_PARAMETER; goto end; } if (!data->csSigners) - { - ret = FALSE; - SetLastError(TRUST_E_NOSIGNATURE); - } + err = TRUST_E_NOSIGNATURE; else { DWORD i; @@ -880,19 +876,18 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) pChainPara = &chainPara; pCreateInfo = &createInfo; } - ret = TRUE; - for (i = 0; i < data->csSigners; i++) - ret = WINTRUST_CreateChainForSigner(data, i, pCreateInfo, + err = ERROR_SUCCESS; + for (i = 0; !err && i < data->csSigners; i++) + err = WINTRUST_CreateChainForSigner(data, i, pCreateInfo, pChainPara); } end: - if (!ret) - data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV] = - GetLastError(); - TRACE("returning %d (%08x)\n", ret ? S_OK : S_FALSE, + if (err) + data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV] = err; + TRACE("returning %d (%08x)\n", !err ? S_OK : S_FALSE, data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV]); - return ret ? S_OK : S_FALSE; + return !err ? S_OK : S_FALSE; } HRESULT WINAPI SoftpubAuthenticode(CRYPT_PROVIDER_DATA *data)
participants (1)
-
Alexandre Julliard