Skip to content

Commit e335398

Browse files
committed
Avoid wrap around issues when counting parameters miniscript
1 parent a9a3b36 commit e335398

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

NBitcoin.Tests/MiniscriptTests.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,11 @@ public void CanReplaceParameters()
455455
[InlineData("hash256(03a195e87b81956f63837927446ffb42ace1675778264597b9aa0aa0d461b89)", typeof(MiniscriptError.HashExpected))]
456456
[InlineData("sha256(03a195e87b81956f63837927446ffb42ace1675778264597b9aa0aa0d461b8)", typeof(MiniscriptError.HashExpected))]
457457
[InlineData("multi(2,A)", typeof(MiniscriptError.TooFewParameters))]
458-
[InlineData("multi(2000000000,A)", typeof(MiniscriptError.TooFewParameters))]
458+
[InlineData("multi(4294967295,A)", typeof(MiniscriptError.CountExpected))]
459+
[InlineData("multi(4294967297,A)", typeof(MiniscriptError.CountExpected))]
460+
[InlineData("multi(4294967290,A)", typeof(MiniscriptError.CountExpected))]
461+
[InlineData("multi(2147483647,A)", typeof(MiniscriptError.CountExpected))]
462+
[InlineData("multi(2147483646,A)", typeof(MiniscriptError.TooFewParameters))]
459463
[InlineData("thresh(2,A)", typeof(MiniscriptError.TooFewParameters))]
460464
[InlineData("sh(A)", typeof(MiniscriptError.UnknownFragmentName))]
461465
[InlineData("wpkh(A)", typeof(MiniscriptError.UnknownFragmentName))]

NBitcoin/NBitcoin.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<RepositoryType>git</RepositoryType>
1313
</PropertyGroup>
1414
<PropertyGroup>
15-
<Version Condition=" '$(Version)' == '' ">8.0.9</Version>
15+
<Version Condition=" '$(Version)' == '' ">8.0.10</Version>
1616
<LangVersion>12.0</LangVersion>
1717
</PropertyGroup>
1818
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">

NBitcoin/WalletPolicies/Miniscript.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ private static bool TryParseParameterCount(ParsingContext ctx, [MaybeNullWhen(tr
212212
error = null;
213213
node = null;
214214
var match = Regex.Match(ctx.Remaining, @"^[0-9]+");
215-
if (uint.TryParse(match.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var v))
215+
if (uint.TryParse(match.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var v) && v < Int32.MaxValue)
216216
{
217217
ctx.Advance(match.Length);
218218
node = new Value.CountValue((int)v);

0 commit comments

Comments
 (0)