diff options
author | Bob Arnson <bob@firegiant.com> | 2020-03-12 21:25:18 -0400 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2020-03-12 21:29:48 -0400 |
commit | 2cae81fe9d9457c395996e6f27db0d81e250e4f2 (patch) | |
tree | 3e28f659819956ced3175018aca79982505ed148 /src | |
parent | 61d0e33943811cc31aeeae0c8c1c5c5768986bbe (diff) | |
download | wix-2cae81fe9d9457c395996e6f27db0d81e250e4f2.tar.gz wix-2cae81fe9d9457c395996e6f27db0d81e250e4f2.tar.bz2 wix-2cae81fe9d9457c395996e6f27db0d81e250e4f2.zip |
Avoid infinite loops when resolving variables.
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Core/VariableResolver.cs | 2 | ||||
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/WixToolset.Core/VariableResolver.cs b/src/WixToolset.Core/VariableResolver.cs index 0a7916a3..4a65bec2 100644 --- a/src/WixToolset.Core/VariableResolver.cs +++ b/src/WixToolset.Core/VariableResolver.cs | |||
@@ -94,7 +94,7 @@ namespace WixToolset.Core | |||
94 | result.IsDefault = true; | 94 | result.IsDefault = true; |
95 | result.Value = value; | 95 | result.Value = value; |
96 | 96 | ||
97 | while (!result.DelayedResolve && matches.Count > 0) | 97 | while (!this.Messaging.EncounteredError && !result.DelayedResolve && matches.Count > 0) |
98 | { | 98 | { |
99 | var sb = new StringBuilder(value); | 99 | var sb = new StringBuilder(value); |
100 | 100 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs b/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs index b53842f7..eaeb4724 100644 --- a/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs | |||
@@ -32,6 +32,7 @@ namespace WixToolsetTest.CoreIntegration | |||
32 | Assert.Equal("Welcome to Localized Product Name", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductName)", false).Value); | 32 | Assert.Equal("Welcome to Localized Product Name", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductName)", false).Value); |
33 | Assert.Equal("Welcome to Localized Product Name Enterprise Edition", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEdition)", false).Value); | 33 | Assert.Equal("Welcome to Localized Product Name Enterprise Edition", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEdition)", false).Value); |
34 | Assert.Equal("Welcome to Localized Product Name Enterprise Edition v1.2.3", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEditionVersion)", false).Value); | 34 | Assert.Equal("Welcome to Localized Product Name Enterprise Edition v1.2.3", variableResolver.ResolveVariables(null, "Welcome to !(loc.ProductNameEditionVersion)", false).Value); |
35 | Assert.Throws<WixException>(() => variableResolver.ResolveVariables(null, "Welcome to !(loc.UnknownLocalizationVariable)", false)); | ||
35 | } | 36 | } |
36 | } | 37 | } |
37 | } | 38 | } |