From 15e332b88cb473d911cb268580400728014dd01b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 2 Oct 2022 19:26:26 -0700 Subject: Fix verutil string comparisons Invariant string comparisons were finding strings like "abc" to be less than "-abc". Switching to ordinal comparison correctly reports the order. --- src/libs/dutil/WixToolset.DUtil/verutil.cpp | 2 +- src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/dutil/WixToolset.DUtil/verutil.cpp b/src/libs/dutil/WixToolset.DUtil/verutil.cpp index 276441b5..e6ef5039 100644 --- a/src/libs/dutil/WixToolset.DUtil/verutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/verutil.cpp @@ -660,7 +660,7 @@ static HRESULT CompareVersionSubstring( HRESULT hr = S_OK; int nResult = 0; - nResult = ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, wzString1, cchCount1, wzString2, cchCount2); + nResult = ::CompareStringOrdinal(wzString1, cchCount1, wzString2, cchCount2, TRUE); if (!nResult) { VerExitOnLastError(hr, "Failed to compare version substrings"); diff --git a/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp b/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp index f4085c33..3e414006 100644 --- a/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp +++ b/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp @@ -606,7 +606,7 @@ namespace DutilTests TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); TestVerutilCompareParsedVersions(pVersion1, pVersion3, 1); - TestVerutilCompareParsedVersions(pVersion2, pVersion3, -1); + TestVerutilCompareParsedVersions(pVersion2, pVersion3, 1); } finally { -- cgit v1.2.3-55-g6feb