From aacd6b677332f2e262d0df67603c246cd65d833e Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 1 Aug 2022 17:07:25 -0500 Subject: Store list of persisted well-known variables in Burn. This allows it to reject Variables declared in the manifest that start with the reserved prefix 'Wix'. --- src/burn/engine/package.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/burn/engine/package.cpp') diff --git a/src/burn/engine/package.cpp b/src/burn/engine/package.cpp index c56f74c8..fe8af497 100644 --- a/src/burn/engine/package.cpp +++ b/src/burn/engine/package.cpp @@ -174,6 +174,13 @@ extern "C" HRESULT PackagesParseFromXml( hr = XmlGetAttributeEx(pixnNode, L"RollbackLogPathVariable", &pPackage->sczRollbackLogPathVariable); ExitOnOptionalXmlQueryFailure(hr, fFoundXml, "Failed to get @RollbackLogPathVariable."); + if (pPackage->sczLogPathVariable && *pPackage->sczLogPathVariable) + { + // Format a suitable log path variable from the original package. + hr = StrAllocFormatted(&pPackage->sczCompatibleLogPathVariable, L"%ls_Compatible", pPackage->sczLogPathVariable); + ExitOnFailure(hr, "Failed to format log path variable for compatible package."); + } + // @InstallCondition hr = XmlGetAttributeEx(pixnNode, L"InstallCondition", &pPackage->sczInstallCondition); ExitOnOptionalXmlQueryFailure(hr, fFoundXml, "Failed to get @InstallCondition."); @@ -365,6 +372,7 @@ extern "C" void PackageUninitialize( ReleaseStr(pPackage->sczId); ReleaseStr(pPackage->sczLogPathVariable); ReleaseStr(pPackage->sczRollbackLogPathVariable); + ReleaseStr(pPackage->sczCompatibleLogPathVariable); ReleaseStr(pPackage->sczInstallCondition); ReleaseStr(pPackage->sczRepairCondition); ReleaseStr(pPackage->sczCacheId); -- cgit v1.2.3-55-g6feb