aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/package.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-16 14:08:45 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 22:59:50 -0600
commiteee408f4f52823038ca6da83693efd135c8511c8 (patch)
tree701088537801578a40c527eeec1e758714b05310 /src/burn/engine/package.cpp
parentf5d880cc70ad7350b0da1ea825141f95cbdb4c7b (diff)
downloadwix-eee408f4f52823038ca6da83693efd135c8511c8.tar.gz
wix-eee408f4f52823038ca6da83693efd135c8511c8.tar.bz2
wix-eee408f4f52823038ca6da83693efd135c8511c8.zip
Make Burn require a non-empty KB for MsuPackages to be uninstallable.
Diffstat (limited to 'src/burn/engine/package.cpp')
-rw-r--r--src/burn/engine/package.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp
index 72da817f..8a80194e 100644
--- a/src/burn/engine/package.cpp
+++ b/src/burn/engine/package.cpp
@@ -161,7 +161,6 @@ extern "C" HRESULT PackagesParseFromXml(
161 // @Permanent 161 // @Permanent
162 hr = XmlGetYesNoAttribute(pixnNode, L"Permanent", &pPackage->fPermanent); 162 hr = XmlGetYesNoAttribute(pixnNode, L"Permanent", &pPackage->fPermanent);
163 ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Permanent."); 163 ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Permanent.");
164 pPackage->fCanAffectRegistration = !pPackage->fPermanent;
165 164
166 // @Vital 165 // @Vital
167 hr = XmlGetYesNoAttribute(pixnNode, L"Vital", &pPackage->fVital); 166 hr = XmlGetYesNoAttribute(pixnNode, L"Vital", &pPackage->fVital);
@@ -244,6 +243,9 @@ extern "C" HRESULT PackagesParseFromXml(
244 case BURN_PACKAGE_TYPE_EXE: 243 case BURN_PACKAGE_TYPE_EXE:
245 fUninstallable = pPackage->Exe.fUninstallable; 244 fUninstallable = pPackage->Exe.fUninstallable;
246 break; 245 break;
246 case BURN_PACKAGE_TYPE_MSU:
247 fUninstallable = pPackage->Msu.fUninstallable;
248 break;
247 } 249 }
248 250
249 if (!fUninstallable) 251 if (!fUninstallable)
@@ -252,6 +254,8 @@ extern "C" HRESULT PackagesParseFromXml(
252 } 254 }
253 } 255 }
254 256
257 pPackage->fCanAffectRegistration = !pPackage->fPermanent;
258
255 // parse payload references 259 // parse payload references
256 hr = ParsePayloadRefsFromXml(pPackage, pPayloads, pixnNode); 260 hr = ParsePayloadRefsFromXml(pPackage, pPayloads, pixnNode);
257 ExitOnFailure(hr, "Failed to parse payload references."); 261 ExitOnFailure(hr, "Failed to parse payload references.");