From 6e26cd801a936c2f68c2f88216b1864addbf9a84 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Thu, 13 Feb 2020 10:52:57 +0100 Subject: [PATCH] Address code analysis warnings Signed-off-by: Simon Rozman --- include/MSICALib.h | 7 +++++-- src/MSICALib.cpp | 8 ++++---- src/OpReg.cpp | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/include/MSICALib.h b/include/MSICALib.h index f0c9bcb..fc66bf4 100644 --- a/include/MSICALib.h +++ b/include/MSICALib.h @@ -1328,7 +1328,10 @@ inline BOOL IsWow64Process() { #ifndef _WIN64 // Find IsWow64Process() address in KERNEL32.DLL. - BOOL (WINAPI *_IsWow64Process)(__in HANDLE hProcess, __out PBOOL Wow64Process) = (BOOL(WINAPI*)(__in HANDLE, __out PBOOL))::GetProcAddress(::GetModuleHandle(_T("KERNEL32.DLL")), "IsWow64Process"); + HMODULE hKernel32 = ::GetModuleHandle(_T("KERNEL32.DLL")); + if (!hKernel32) + return FALSE; + BOOL (WINAPI *_IsWow64Process)(__in HANDLE hProcess, __out PBOOL Wow64Process) = (BOOL(WINAPI*)(__in HANDLE, __out PBOOL))::GetProcAddress(hKernel32, "IsWow64Process"); // See if our 32-bit process is running in 64-bit environment. if (_IsWow64Process) { @@ -1343,7 +1346,7 @@ inline BOOL IsWow64Process() return FALSE; } } else { - // This KERNEL32.DLL doesn't know IsWow64Process().Definitely not a WOW64 process. + // This KERNEL32.DLL doesn't know IsWow64Process(). Definitely not a WOW64 process. return FALSE; } #else diff --git a/src/MSICALib.cpp b/src/MSICALib.cpp index e16e5d8..580c7bf 100644 --- a/src/MSICALib.cpp +++ b/src/MSICALib.cpp @@ -203,10 +203,10 @@ UINT SaveSequence(MSIHANDLE hInstall, LPCTSTR szActionExecute, LPCTSTR szActionC LPCTSTR pszExtension = ::PathFindExtension(sSequenceFilename.c_str()); winstd::tstring sSequenceFilename2; - sprintf(sSequenceFilename2, _T("%.*ls-rb%ls"), pszExtension - sSequenceFilename.c_str(), sSequenceFilename.c_str(), pszExtension); + sprintf(sSequenceFilename2, _T("%.*ls-rb%ls"), (unsigned int)(pszExtension - sSequenceFilename.c_str()), sSequenceFilename.c_str(), pszExtension); uiResult = ::MsiSetProperty(hInstall, szActionRollback, sSequenceFilename2.c_str()); if (uiResult == NO_ERROR) { - sprintf(sSequenceFilename2, _T("%.*ls-cm%ls"), pszExtension - sSequenceFilename.c_str(), sSequenceFilename.c_str(), pszExtension); + sprintf(sSequenceFilename2, _T("%.*ls-cm%ls"), (unsigned int)(pszExtension - sSequenceFilename.c_str()), sSequenceFilename.c_str(), pszExtension); uiResult = ::MsiSetProperty(hInstall, szActionCommit, sSequenceFilename2.c_str()); if (uiResult != NO_ERROR) { ::MsiRecordSetInteger(hRecordProg, 1, ERROR_INSTALL_PROPERTY_SET); @@ -270,8 +270,8 @@ UINT ExecuteSequence(MSIHANDLE hInstall) LPCTSTR pszExtension = ::PathFindExtension(sSequenceFilename.c_str()); winstd::tstring sSequenceFilenameCM, sSequenceFilenameRB; - sprintf(sSequenceFilenameRB, _T("%.*ls-rb%ls"), pszExtension - sSequenceFilename.c_str(), sSequenceFilename.c_str(), pszExtension); - sprintf(sSequenceFilenameCM, _T("%.*ls-cm%ls"), pszExtension - sSequenceFilename.c_str(), sSequenceFilename.c_str(), pszExtension); + sprintf(sSequenceFilenameRB, _T("%.*ls-rb%ls"), (unsigned int)(pszExtension - sSequenceFilename.c_str()), sSequenceFilename.c_str(), pszExtension); + sprintf(sSequenceFilenameCM, _T("%.*ls-cm%ls"), (unsigned int)(pszExtension - sSequenceFilename.c_str()), sSequenceFilename.c_str(), pszExtension); // After commit, delete rollback file. After rollback, delete commit file. session.m_olCommit.push_back(new MSICA::COpFileDelete( diff --git a/src/OpReg.cpp b/src/OpReg.cpp index b86f9e6..8cf03ea 100644 --- a/src/OpReg.cpp +++ b/src/OpReg.cpp @@ -323,7 +323,7 @@ HRESULT COpRegKeyDelete::Execute(CSession *pSession) for (;;) { HKEY hKeyTest; - sprintf(sBackupName, L"%.*ls (orig %u)", iLength, m_sValue.c_str(), ++uiCount); + sprintf(sBackupName, L"%.*ls (orig %u)", (unsigned int)iLength, m_sValue.c_str(), ++uiCount); lResult = ::RegOpenKeyExW(m_hKeyRoot, sBackupName.c_str(), 0, KEY_ENUMERATE_SUB_KEYS | samAdditional, &hKeyTest); if (lResult != NO_ERROR) break; ::RegCloseKey(hKeyTest);