wintrust: In SoftpubLoadSignature, don't assume a message is present.

This commit is contained in:
Juan Lang 2007-09-28 12:47:03 -07:00 committed by Alexandre Julliard
parent 5fa5518641
commit d7d4a5c4a9
1 changed files with 16 additions and 10 deletions

View File

@ -452,13 +452,16 @@ static BOOL WINTRUST_VerifySigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data) HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data)
{ {
BOOL ret; BOOL ret;
DWORD signerCount, size;
TRACE("(%p)\n", data); TRACE("(%p)\n", data);
if (!data->padwTrustStepErrors) if (!data->padwTrustStepErrors)
return S_FALSE; return S_FALSE;
if (data->hMsg)
{
DWORD signerCount, size;
size = sizeof(signerCount); size = sizeof(signerCount);
ret = CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0, ret = CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0,
&signerCount, &size); &signerCount, &size);
@ -474,6 +477,9 @@ HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data)
} }
else else
SetLastError(TRUST_E_NOSIGNATURE); SetLastError(TRUST_E_NOSIGNATURE);
}
else
ret = TRUE;
if (!ret) if (!ret)
data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] = data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] =
GetLastError(); GetLastError();