aboutsummaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-09-14 11:02:20 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-09-14 12:22:45 -0500
commitca3bf7968865be1cb80e9d63e7cc177f92469e2f (patch)
tree4e55d5fa999fc12180ed80ca5b9ba55eb12dc07b /src/libs
parent5059f83d7dccd7221458fca414a0756bb83466a5 (diff)
downloadwix-ca3bf7968865be1cb80e9d63e7cc177f92469e2f.tar.gz
wix-ca3bf7968865be1cb80e9d63e7cc177f92469e2f.tar.bz2
wix-ca3bf7968865be1cb80e9d63e7cc177f92469e2f.zip
Don't search for 64-bit bundles on 32-bit OS.
Fixes 6849
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/butil.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/butil.cpp b/src/libs/dutil/WixToolset.DUtil/butil.cpp
index 47f206ea..4b6cd02a 100644
--- a/src/libs/dutil/WixToolset.DUtil/butil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/butil.cpp
@@ -361,6 +361,12 @@ DAPI_(HRESULT) BundleQueryRelatedBundles(
361{ 361{
362 HRESULT hr = S_OK; 362 HRESULT hr = S_OK;
363 BUNDLE_QUERY_CONTEXT queryContext = { }; 363 BUNDLE_QUERY_CONTEXT queryContext = { };
364 BOOL fSearch64 = TRUE;
365
366#if !defined(_WIN64)
367 // On 32-bit OS's, the requested bitness of the key is ignored so need to avoid searching the same place twice.
368 ProcWow64(::GetCurrentProcess(), &fSearch64);
369#endif
364 370
365 queryContext.installContext = installContext; 371 queryContext.installContext = installContext;
366 queryContext.rgwzDetectCodes = rgwzDetectCodes; 372 queryContext.rgwzDetectCodes = rgwzDetectCodes;
@@ -379,10 +385,13 @@ DAPI_(HRESULT) BundleQueryRelatedBundles(
379 hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); 385 hr = QueryRelatedBundlesForScopeAndBitness(&queryContext);
380 ButilExitOnFailure(hr, "Failed to query 32-bit related bundles."); 386 ButilExitOnFailure(hr, "Failed to query 32-bit related bundles.");
381 387
382 queryContext.regBitness = REG_KEY_64BIT; 388 if (fSearch64)
389 {
390 queryContext.regBitness = REG_KEY_64BIT;
383 391
384 hr = QueryRelatedBundlesForScopeAndBitness(&queryContext); 392 hr = QueryRelatedBundlesForScopeAndBitness(&queryContext);
385 ButilExitOnFailure(hr, "Failed to query 64-bit related bundles."); 393 ButilExitOnFailure(hr, "Failed to query 64-bit related bundles.");
394 }
386 395
387LExit: 396LExit:
388 return hr; 397 return hr;