aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-12-01 13:35:04 +0100
committerBjörn Gustavsson <[email protected]>2015-01-12 11:40:28 +0100
commit1c7802251322ea82ab7a7c5098034a88db69e787 (patch)
tree98bbab7b16ad68b1f82bb3a1a8db70592674a109 /lib/asn1/test
parent303fff739a00200a2a2adf3104e80a9e48012563 (diff)
downloadotp-1c7802251322ea82ab7a7c5098034a88db69e787.tar.gz
otp-1c7802251322ea82ab7a7c5098034a88db69e787.tar.bz2
otp-1c7802251322ea82ab7a7c5098034a88db69e787.zip
BER: Fix ENUMERATED with negative values
The ASN.1 compiler would go into an infinite loop if a value in an ENUMERATED was negative.
Diffstat (limited to 'lib/asn1/test')
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Prim.asn12
-rw-r--r--lib/asn1/test/testPrim.erl5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/Prim.asn1 b/lib/asn1/test/asn1_SUITE_data/Prim.asn1
index cc0e61422a..b4c011fd39 100644
--- a/lib/asn1/test/asn1_SUITE_data/Prim.asn1
+++ b/lib/asn1/test/asn1_SUITE_data/Prim.asn1
@@ -24,6 +24,8 @@ BEGIN
friday(5),saturday(6),sunday(7)}
SingleEnumVal ::= ENUMERATED {true}
SingleEnumValExt ::= ENUMERATED {true, ...}
+ NegEnumVal ::= ENUMERATED {neg(-1), ..., zero(0)}
+ EnumVal128 ::= ENUMERATED {val(128)}
ObjId ::= OBJECT IDENTIFIER
diff --git a/lib/asn1/test/testPrim.erl b/lib/asn1/test/testPrim.erl
index e07379e634..d7893a2d58 100644
--- a/lib/asn1/test/testPrim.erl
+++ b/lib/asn1/test/testPrim.erl
@@ -98,6 +98,11 @@ enum(Rules) ->
ber ->
ok
end,
+
+ roundtrip('NegEnumVal', neg),
+ roundtrip('NegEnumVal', zero),
+ roundtrip('EnumVal128', val),
+
ok.