Commit 2f836649 authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

wintrust: Correct GenericChainCertificateTrust's handling of…

wintrust: Correct GenericChainCertificateTrust's handling of WINTRUST_CreateChainForSigner's return value.
parent 24ff7048
...@@ -845,7 +845,7 @@ HRESULT WINAPI WintrustCertificateTrust(CRYPT_PROVIDER_DATA *data) ...@@ -845,7 +845,7 @@ HRESULT WINAPI WintrustCertificateTrust(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data)
{ {
BOOL ret; DWORD err;
WTD_GENERIC_CHAIN_POLICY_DATA *policyData = WTD_GENERIC_CHAIN_POLICY_DATA *policyData =
data->pWintrustData->pPolicyCallbackData; data->pWintrustData->pPolicyCallbackData;
...@@ -854,15 +854,11 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) ...@@ -854,15 +854,11 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data)
if (policyData && policyData->u.cbSize != if (policyData && policyData->u.cbSize !=
sizeof(WTD_GENERIC_CHAIN_POLICY_CREATE_INFO)) sizeof(WTD_GENERIC_CHAIN_POLICY_CREATE_INFO))
{ {
SetLastError(ERROR_INVALID_PARAMETER); err = ERROR_INVALID_PARAMETER;
ret = FALSE;
goto end; goto end;
} }
if (!data->csSigners) if (!data->csSigners)
{ err = TRUST_E_NOSIGNATURE;
ret = FALSE;
SetLastError(TRUST_E_NOSIGNATURE);
}
else else
{ {
DWORD i; DWORD i;
...@@ -880,19 +876,18 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data) ...@@ -880,19 +876,18 @@ HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data)
pChainPara = &chainPara; pChainPara = &chainPara;
pCreateInfo = &createInfo; pCreateInfo = &createInfo;
} }
ret = TRUE; err = ERROR_SUCCESS;
for (i = 0; i < data->csSigners; i++) for (i = 0; !err && i < data->csSigners; i++)
ret = WINTRUST_CreateChainForSigner(data, i, pCreateInfo, err = WINTRUST_CreateChainForSigner(data, i, pCreateInfo,
pChainPara); pChainPara);
} }
end: end:
if (!ret) if (err)
data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV] = data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV] = err;
GetLastError(); TRACE("returning %d (%08x)\n", !err ? S_OK : S_FALSE,
TRACE("returning %d (%08x)\n", ret ? S_OK : S_FALSE,
data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_CERTPROV]); 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) HRESULT WINAPI SoftpubAuthenticode(CRYPT_PROVIDER_DATA *data)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment