From f5d880cc70ad7350b0da1ea825141f95cbdb4c7b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 16 Jan 2022 12:17:27 -0600 Subject: Update Burn to handle ExePackages that don't support uninstalling. Partial fix for #6459 --- src/burn/engine/package.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/burn/engine/package.cpp') 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( // ignore other package types for now } + if (!pPackage->fPermanent) + { + BOOL fUninstallable = TRUE; + + switch (pPackage->type) + { + case BURN_PACKAGE_TYPE_EXE: + fUninstallable = pPackage->Exe.fUninstallable; + break; + } + + if (!fUninstallable) + { + ExitWithRootFailure(hr, E_INVALIDDATA, "Non-permanent packages must be uninstallable."); + } + } + // parse payload references hr = ParsePayloadRefsFromXml(pPackage, pPayloads, pixnNode); ExitOnFailure(hr, "Failed to parse payload references."); -- cgit v1.2.3-55-g6feb