aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-12-10 17:34:12 +0100
committerBjörn Gustavsson <[email protected]>2012-12-18 14:46:02 +0100
commitd790477de9e128b1931df655a760083de0c6125c (patch)
tree7bf79cce60b545ccdbf2e8435b00e515def421f9 /lib/asn1/src
parenta5567554dd98b37c1d0ecbb52fdb4f55a93a1cf8 (diff)
downloadotp-d790477de9e128b1931df655a760083de0c6125c.tar.gz
otp-d790477de9e128b1931df655a760083de0c6125c.tar.bz2
otp-d790477de9e128b1931df655a760083de0c6125c.zip
Fix a bug in skipping of extensions
Extensions following a double bracket group were not skipped correctly. Fix this bug and add tests to ensure that extensions are skipped correctly.
Diffstat (limited to 'lib/asn1/src')
-rw-r--r--lib/asn1/src/asn1ct_constructed_per.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/asn1/src/asn1ct_constructed_per.erl b/lib/asn1/src/asn1ct_constructed_per.erl
index b29a7b3048..4ec34da019 100644
--- a/lib/asn1/src/asn1ct_constructed_per.erl
+++ b/lib/asn1/src/asn1ct_constructed_per.erl
@@ -1099,10 +1099,11 @@ gen_dec_components_call(Erule,TopType,CL={Root1,ExtList,Root2},
{EmitExts,_} = gen_dec_comp_calls(NewExtList, Erule, TopType, OptTable,
DecInfObj, Ext, NumberOfOptionals,
Tpos, []),
+ NumExtsToSkip = ext_length(ExtList),
Finish =
fun(St) ->
emit([{next,bytes},"= ?RT_PER:skipextensions(",{curr,bytes},",",
- length(ExtList)+1,",Extensions)"]),
+ NumExtsToSkip+1,",Extensions)"]),
asn1ct_name:new(bytes),
St
end,