aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-03-12 21:25:18 -0400
committerBob Arnson <bob@firegiant.com>2020-03-12 21:29:48 -0400
commit2cae81fe9d9457c395996e6f27db0d81e250e4f2 (patch)
tree3e28f659819956ced3175018aca79982505ed148 /src
parent61d0e33943811cc31aeeae0c8c1c5c5768986bbe (diff)
downloadwix-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.cs2
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/VariableResolverFixture.cs1
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}