aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil
diff options
context:
space:
mode:
authorJacob Hoover <jacob.hoover@greenheck.com>2022-11-10 10:48:23 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-11-10 23:49:10 -0600
commitfa393914f12f6d6bc88a73e4d5b009da765f6dd5 (patch)
tree6dbf354d4542b3e085795b0a917eaafc1eead415 /src/libs/dutil/WixToolset.DUtil
parentc843b47d6233153fa961c6d0e61edf7cedf255bb (diff)
downloadwix-fa393914f12f6d6bc88a73e4d5b009da765f6dd5.tar.gz
wix-fa393914f12f6d6bc88a73e4d5b009da765f6dd5.tar.bz2
wix-fa393914f12f6d6bc88a73e4d5b009da765f6dd5.zip
WIXFEAT-3704 - Allow access to persisted variables from related bundles
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/iniutil.cpp2
-rw-r--r--src/libs/dutil/WixToolset.DUtil/path2utl.cpp11
2 files changed, 12 insertions, 1 deletions
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(
301 wzOpenTagPostfix = wcsstr(pi->rgsczLines[i], pi->sczOpenTagPostfix); 301 wzOpenTagPostfix = wcsstr(pi->rgsczLines[i], pi->sczOpenTagPostfix);
302 } 302 }
303 303
304 wzValueNameStart = NULL;
305
304 if (pi->sczValuePrefix) 306 if (pi->sczValuePrefix)
305 { 307 {
306 wzValuePrefix = wcsstr(pi->rgsczLines[i], pi->sczValuePrefix); 308 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(
327 LPWSTR sczCanonicalizedPath = NULL; 327 LPWSTR sczCanonicalizedPath = NULL;
328 DWORD dwDefaultFlags = PATH_CANONICALIZE_APPEND_EXTENDED_PATH_PREFIX | PATH_CANONICALIZE_KEEP_UNC_ROOT; 328 DWORD dwDefaultFlags = PATH_CANONICALIZE_APPEND_EXTENDED_PATH_PREFIX | PATH_CANONICALIZE_KEEP_UNC_ROOT;
329 size_t cchDirectory = 0; 329 size_t cchDirectory = 0;
330 size_t cchPath = 0;
330 331
331 if (!wzDirectory || !*wzDirectory) 332 if (!wzDirectory || !*wzDirectory)
332 { 333 {
@@ -355,12 +356,20 @@ DAPI_(HRESULT) PathDirectoryContainsPath(
355 hr = ::StringCchLengthW(sczCanonicalizedDirectory, STRSAFE_MAX_CCH, &cchDirectory); 356 hr = ::StringCchLengthW(sczCanonicalizedDirectory, STRSAFE_MAX_CCH, &cchDirectory);
356 PathExitOnFailure(hr, "Failed to get length of canonicalized directory."); 357 PathExitOnFailure(hr, "Failed to get length of canonicalized directory.");
357 358
359 hr = ::StringCchLengthW(sczCanonicalizedPath, STRSAFE_MAX_CCH, &cchPath);
360 PathExitOnFailure(hr, "Failed to get length of canonicalized path.");
361
362 if (cchPath <= cchDirectory)
363 {
364 ExitFunction1(hr = S_FALSE);
365 }
366
358 if (CSTR_EQUAL != ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, sczCanonicalizedDirectory, (DWORD)cchDirectory, sczCanonicalizedPath, (DWORD)cchDirectory)) 367 if (CSTR_EQUAL != ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, sczCanonicalizedDirectory, (DWORD)cchDirectory, sczCanonicalizedPath, (DWORD)cchDirectory))
359 { 368 {
360 ExitFunction1(hr = S_FALSE); 369 ExitFunction1(hr = S_FALSE);
361 } 370 }
362 371
363 hr = sczCanonicalizedPath[cchDirectory] ? S_OK : S_FALSE; 372 hr = S_OK;
364 373
365LExit: 374LExit:
366 ReleaseStr(sczCanonicalizedPath); 375 ReleaseStr(sczCanonicalizedPath);