From fa393914f12f6d6bc88a73e4d5b009da765f6dd5 Mon Sep 17 00:00:00 2001 From: Jacob Hoover Date: Thu, 10 Nov 2022 10:48:23 -0600 Subject: WIXFEAT-3704 - Allow access to persisted variables from related bundles --- src/libs/dutil/WixToolset.DUtil/iniutil.cpp | 2 ++ src/libs/dutil/WixToolset.DUtil/path2utl.cpp | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src/libs') diff --git a/src/libs/dutil/WixToolset.DUtil/iniutil.cpp b/src/libs/dutil/WixToolset.DUtil/iniutil.cpp index 70b62995..46f6e380 100644 --- a/src/libs/dutil/WixToolset.DUtil/iniutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/iniutil.cpp @@ -301,6 +301,8 @@ extern "C" HRESULT DAPI IniParse( wzOpenTagPostfix = wcsstr(pi->rgsczLines[i], pi->sczOpenTagPostfix); } + wzValueNameStart = NULL; + if (pi->sczValuePrefix) { wzValuePrefix = wcsstr(pi->rgsczLines[i], pi->sczValuePrefix); diff --git a/src/libs/dutil/WixToolset.DUtil/path2utl.cpp b/src/libs/dutil/WixToolset.DUtil/path2utl.cpp index 862a743d..d83a4578 100644 --- a/src/libs/dutil/WixToolset.DUtil/path2utl.cpp +++ b/src/libs/dutil/WixToolset.DUtil/path2utl.cpp @@ -327,6 +327,7 @@ DAPI_(HRESULT) PathDirectoryContainsPath( LPWSTR sczCanonicalizedPath = NULL; DWORD dwDefaultFlags = PATH_CANONICALIZE_APPEND_EXTENDED_PATH_PREFIX | PATH_CANONICALIZE_KEEP_UNC_ROOT; size_t cchDirectory = 0; + size_t cchPath = 0; if (!wzDirectory || !*wzDirectory) { @@ -355,12 +356,20 @@ DAPI_(HRESULT) PathDirectoryContainsPath( hr = ::StringCchLengthW(sczCanonicalizedDirectory, STRSAFE_MAX_CCH, &cchDirectory); PathExitOnFailure(hr, "Failed to get length of canonicalized directory."); + hr = ::StringCchLengthW(sczCanonicalizedPath, STRSAFE_MAX_CCH, &cchPath); + PathExitOnFailure(hr, "Failed to get length of canonicalized path."); + + if (cchPath <= cchDirectory) + { + ExitFunction1(hr = S_FALSE); + } + if (CSTR_EQUAL != ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, sczCanonicalizedDirectory, (DWORD)cchDirectory, sczCanonicalizedPath, (DWORD)cchDirectory)) { ExitFunction1(hr = S_FALSE); } - hr = sczCanonicalizedPath[cchDirectory] ? S_OK : S_FALSE; + hr = S_OK; LExit: ReleaseStr(sczCanonicalizedPath); -- cgit v1.2.3-55-g6feb