diff options
author | Jacob Hoover <jacob.hoover@greenheck.com> | 2022-11-10 10:48:23 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-11-10 23:49:10 -0600 |
commit | fa393914f12f6d6bc88a73e4d5b009da765f6dd5 (patch) | |
tree | 6dbf354d4542b3e085795b0a917eaafc1eead415 /src/libs/dutil/WixToolset.DUtil | |
parent | c843b47d6233153fa961c6d0e61edf7cedf255bb (diff) | |
download | wix-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.cpp | 2 | ||||
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/path2utl.cpp | 11 |
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 | ||
365 | LExit: | 374 | LExit: |
366 | ReleaseStr(sczCanonicalizedPath); | 375 | ReleaseStr(sczCanonicalizedPath); |