From 6b0f2d978504da82070523eb6adb0b59f9812e93 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 3 Jun 2022 17:48:39 -0500 Subject: Add PathSkipPastRoot. --- src/burn/engine/bundlepackageengine.cpp | 2 +- src/burn/engine/exeengine.cpp | 2 +- src/burn/engine/logging.cpp | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/burn') diff --git a/src/burn/engine/bundlepackageengine.cpp b/src/burn/engine/bundlepackageengine.cpp index 97861436..8ba8e0d2 100644 --- a/src/burn/engine/bundlepackageengine.cpp +++ b/src/burn/engine/bundlepackageengine.cpp @@ -763,7 +763,7 @@ static HRESULT ExecuteBundle( if (fPseudoPackage) { - if (!PathIsFullyQualified(pPackagePayload->sczFilePath, NULL)) + if (!PathIsFullyQualified(pPackagePayload->sczFilePath)) { ExitWithRootFailure(hr, E_INVALIDSTATE, "Related bundles must have a fully qualified target path."); } diff --git a/src/burn/engine/exeengine.cpp b/src/burn/engine/exeengine.cpp index c3757e92..fb852c78 100644 --- a/src/burn/engine/exeengine.cpp +++ b/src/burn/engine/exeengine.cpp @@ -363,7 +363,7 @@ extern "C" HRESULT ExeEngineExecutePackage( if (pPackage->Exe.fPseudoPackage && BURN_PAYLOAD_VERIFICATION_UPDATE_BUNDLE != pPackagePayload->verification) { - if (!PathIsFullyQualified(pPackagePayload->sczFilePath, NULL)) + if (!PathIsFullyQualified(pPackagePayload->sczFilePath)) { ExitWithRootFailure(hr, E_INVALIDSTATE, "Pseudo ExePackages must have a fully qualified target path."); } diff --git a/src/burn/engine/logging.cpp b/src/burn/engine/logging.cpp index 3a403025..77f5079c 100644 --- a/src/burn/engine/logging.cpp +++ b/src/burn/engine/logging.cpp @@ -134,10 +134,12 @@ extern "C" HRESULT LoggingOpen( if (sczPrefixFormatted && *sczPrefixFormatted) { + // Best effort to open default logging. LPCWSTR wzPrefix = sczPrefixFormatted; + LPCWSTR wzPastRoot = PathSkipPastRoot(sczPrefixFormatted, NULL, NULL, NULL); - // Best effort to open default logging. - if (PathIsRooted(sczPrefixFormatted)) + // If the log path is rooted and has a file component, then use that path as is. + if (wzPastRoot && *wzPastRoot) { hr = PathGetDirectory(sczPrefixFormatted, &sczLoggingBaseFolder); ExitOnFailure(hr, "Failed to get parent directory from '%ls'.", sczPrefixFormatted); -- cgit v1.2.3-55-g6feb