Juan Lang : wintrust: In SoftpubLoadSignature, don' t assume a message is present.
Module: wine Branch: master Commit: d7d4a5c4a96d662abe79268b6e956145e85493d7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d7d4a5c4a96d662abe79268b6e... Author: Juan Lang <juan.lang(a)gmail.com> Date: Fri Sep 28 12:47:03 2007 -0700 wintrust: In SoftpubLoadSignature, don't assume a message is present. --- dlls/wintrust/softpub.c | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c index 59e4966..5a2aab5 100644 --- a/dlls/wintrust/softpub.c +++ b/dlls/wintrust/softpub.c @@ -452,28 +452,34 @@ static BOOL WINTRUST_VerifySigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx) HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data) { BOOL ret; - DWORD signerCount, size; TRACE("(%p)\n", data); if (!data->padwTrustStepErrors) return S_FALSE; - size = sizeof(signerCount); - ret = CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0, - &signerCount, &size); - if (ret) + if (data->hMsg) { - DWORD i; + DWORD signerCount, size; - for (i = 0; ret && i < signerCount; i++) + size = sizeof(signerCount); + ret = CryptMsgGetParam(data->hMsg, CMSG_SIGNER_COUNT_PARAM, 0, + &signerCount, &size); + if (ret) { - if ((ret = WINTRUST_SaveSigner(data, i))) - ret = WINTRUST_VerifySigner(data, i); + DWORD i; + + for (i = 0; ret && i < signerCount; i++) + { + if ((ret = WINTRUST_SaveSigner(data, i))) + ret = WINTRUST_VerifySigner(data, i); + } } + else + SetLastError(TRUST_E_NOSIGNATURE); } else - SetLastError(TRUST_E_NOSIGNATURE); + ret = TRUE; if (!ret) data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] = GetLastError();
participants (1)
-
Alexandre Julliard