Module: wine Branch: master Commit: 904bedb3e96bc68101652e151db102532399abe8 URL: https://gitlab.winehq.org/wine/wine/-/commit/904bedb3e96bc68101652e151db1025...
Author: Philip K. Gisslow ripxorip@gmail.com Date: Thu Jan 5 08:08:05 2023 +0100
msi: Initialize all members of WINTRUST_DATA.
The pSignatureSettings field was not unitilized so it got a random value from the stack causing a later crash when it was dereferenced in Wintrust (SoftPubloadSignature).
---
dlls/msi/msi.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index db04babb899..3ebfd94a9f0 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -2544,18 +2544,15 @@ HRESULT WINAPI MsiGetFileSignatureInformationW( const WCHAR *path, DWORD flags, info.hFile = NULL; info.pgKnownSubject = NULL;
+ memset( &data, 0, sizeof(data) ); data.cbStruct = sizeof(data); - data.pPolicyCallbackData = NULL; - data.pSIPClientData = NULL; data.dwUIChoice = WTD_UI_NONE; data.fdwRevocationChecks = WTD_REVOKE_WHOLECHAIN; data.dwUnionChoice = WTD_CHOICE_FILE; data.u.pFile = &info; data.dwStateAction = WTD_STATEACTION_VERIFY; - data.hWVTStateData = NULL; - data.pwszURLReference = NULL; - data.dwProvFlags = 0; data.dwUIContext = WTD_UICONTEXT_INSTALL; + hr = WinVerifyTrustEx( INVALID_HANDLE_VALUE, &generic_verify_v2, &data ); *cert = NULL; if (FAILED(hr)) goto done;