aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-04-23 10:39:50 +0200
committerBjörn Gustavsson <[email protected]>2013-05-31 14:52:24 +0200
commit4709d67f92bf89c264e38fbf94e3324edd922ac8 (patch)
tree87778bf38d0a7ff33aabbec5023690bf21c0ba1f /lib/asn1/test
parenta1495bd1e09dbefa8595e9388140140c143088f2 (diff)
downloadotp-4709d67f92bf89c264e38fbf94e3324edd922ac8.tar.gz
otp-4709d67f92bf89c264e38fbf94e3324edd922ac8.tar.bz2
otp-4709d67f92bf89c264e38fbf94e3324edd922ac8.zip
Fix encoding of semi-constrained, extensible INTEGERs
Given: Semi ::= INTEGER (Lb..MAX, ...) where Lb is an arbitrary integer, attempting to encode an integer less than Lb would cause the encoder to enter an infinite loop.
Diffstat (limited to 'lib/asn1/test')
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Constraints.py2
-rw-r--r--lib/asn1/test/testConstraints.erl10
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/Constraints.py b/lib/asn1/test/asn1_SUITE_data/Constraints.py
index 1d2f4bc44c..e4bc987e4c 100644
--- a/lib/asn1/test/asn1_SUITE_data/Constraints.py
+++ b/lib/asn1/test/asn1_SUITE_data/Constraints.py
@@ -14,6 +14,8 @@ LongLong ::= INTEGER (0..18446744073709551615)
Range256to65536 ::= INTEGER (256..65536)
SemiConstrained ::= INTEGER (100..MAX)
NegSemiConstrained ::= INTEGER (-128..MAX)
+SemiConstrainedExt ::= INTEGER (42..MAX, ...)
+NegSemiConstrainedExt ::= INTEGER (-128..MAX, ...)
-- Other constraints
FixedSize ::= OCTET STRING (SIZE(10))
diff --git a/lib/asn1/test/testConstraints.erl b/lib/asn1/test/testConstraints.erl
index b90ae8cab2..e825302629 100644
--- a/lib/asn1/test/testConstraints.erl
+++ b/lib/asn1/test/testConstraints.erl
@@ -131,6 +131,16 @@ int_constraints(Rules) ->
roundtrip('NegSemiConstrained', -1),
roundtrip('NegSemiConstrained', 500),
+ roundtrip('SemiConstrainedExt', -65536),
+ roundtrip('SemiConstrainedExt', 0),
+ roundtrip('SemiConstrainedExt', 42),
+ roundtrip('SemiConstrainedExt', 100),
+ roundtrip('SemiConstrainedExt', 47777789),
+ roundtrip('NegSemiConstrainedExt', -1023),
+ roundtrip('NegSemiConstrainedExt', -128),
+ roundtrip('NegSemiConstrainedExt', -1),
+ roundtrip('NegSemiConstrainedExt', 500),
+
%%==========================================================
%% SIZE Constraint (Duboisson p. 268)
%% T ::= IA5String (SIZE (1|2, ..., SIZE (1|2|3)))