aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/package.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/package.cpp')
-rw-r--r--src/burn/engine/package.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp
index 20b728f4..72da817f 100644
--- a/src/burn/engine/package.cpp
+++ b/src/burn/engine/package.cpp
@@ -235,6 +235,23 @@ extern "C" HRESULT PackagesParseFromXml(
235 // ignore other package types for now 235 // ignore other package types for now
236 } 236 }
237 237
238 if (!pPackage->fPermanent)
239 {
240 BOOL fUninstallable = TRUE;
241
242 switch (pPackage->type)
243 {
244 case BURN_PACKAGE_TYPE_EXE:
245 fUninstallable = pPackage->Exe.fUninstallable;
246 break;
247 }
248
249 if (!fUninstallable)
250 {
251 ExitWithRootFailure(hr, E_INVALIDDATA, "Non-permanent packages must be uninstallable.");
252 }
253 }
254
238 // parse payload references 255 // parse payload references
239 hr = ParsePayloadRefsFromXml(pPackage, pPayloads, pixnNode); 256 hr = ParsePayloadRefsFromXml(pPackage, pPayloads, pixnNode);
240 ExitOnFailure(hr, "Failed to parse payload references."); 257 ExitOnFailure(hr, "Failed to parse payload references.");