<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/asn1/c_src, branch maint</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Handle erroneous length during decode (BER only) without crashing</title>
<updated>2018-12-04T08:40:41+00:00</updated>
<author>
<name>Kenneth Lundin</name>
<email>kenneth.lundin@ericsson.com</email>
</author>
<published>2018-12-04T08:40:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7c79f91fd5878c31c302015f5fc7fec51e4e7977'/>
<id>7c79f91fd5878c31c302015f5fc7fec51e4e7977</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix NIF stack recursion bug and enforce a limit</title>
<updated>2018-08-02T08:03:27+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2018-08-01T18:38:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a473aaaa43e34705bb730b05350d6b733890e542'/>
<id>a473aaaa43e34705bb730b05350d6b733890e542</id>
<content type='text'>
Fix recursion bug when decoding Constructed value within another
value - here the allowed buffer for the recursed decode shall
only be the size of the enclosing value, not the whole buffer.

Return ASN1_ERROR if BER decode recurses more than about 8 kWords.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix recursion bug when decoding Constructed value within another
value - here the allowed buffer for the recursed decode shall
only be the size of the enclosing value, not the whole buffer.

Return ASN1_ERROR if BER decode recurses more than about 8 kWords.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright year</title>
<updated>2017-05-04T13:42:21+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2017-05-04T13:42:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=83e20c62057ebc1d8064bf57b01be560cd244e1d'/>
<id>83e20c62057ebc1d8064bf57b01be560cd244e1d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>asn1_erl_nif.c: Correct handling of tags &gt;= 16384</title>
<updated>2017-03-14T08:47:40+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2017-03-06T13:28:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3334c0c7b831ecf47738c713fd764eef891a298a'/>
<id>3334c0c7b831ecf47738c713fd764eef891a298a</id>
<content type='text'>
Tags number above 16383 were not decoded correctly in
ber_decode_tag().

We could fix the problem, but there does not seem to be any need.

First, the only way that high tag numbers can be created is with
manual tagging; after 1994 manual tagging is no longer recommended.

Second, the ASN.1 playground (http://asn1-playground.oss.com) only
supports tags up to 16383 (the same is presumably true for OSS
Nokalva's other tools).

Therefore, clean up the existing code and make it an explicit
'invalid_tag' error when tags above 13383 are encountered
(instead of an implicit 'wrong_tag' error).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tags number above 16383 were not decoded correctly in
ber_decode_tag().

We could fix the problem, but there does not seem to be any need.

First, the only way that high tag numbers can be created is with
manual tagging; after 1994 manual tagging is no longer recommended.

Second, the ASN.1 playground (http://asn1-playground.oss.com) only
supports tags up to 16383 (the same is presumably true for OSS
Nokalva's other tools).

Therefore, clean up the existing code and make it an explicit
'invalid_tag' error when tags above 13383 are encountered
(instead of an implicit 'wrong_tag' error).
</pre>
</div>
</content>
</entry>
<entry>
<title>Use more correct delimiters for erl_nif.h include</title>
<updated>2016-09-19T19:39:36+00:00</updated>
<author>
<name>Tuncer Ayaz</name>
<email>tuncer.ayaz@gmail.com</email>
</author>
<published>2016-09-18T10:33:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3489b9b689073f428a23f7fc7a67774b7dda07be'/>
<id>3489b9b689073f428a23f7fc7a67774b7dda07be</id>
<content type='text'>
Anywhere but the beam sources we shouldn't #include "erl_nif.h", because
what "erl_nif.h" does is: (1) fail to find it outside of -I dirs, (2)
then treat it as if it was written like &lt;erl_nif.h&gt;. Using &lt;erl_nif.h&gt;
skips (1).

More information can be found in 6.10.2 of the C standard.

Because the examples use "erl_nif.h", NIF projects in the Erlang
ecosystem copy this verbatim and make the same mistake.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Anywhere but the beam sources we shouldn't #include "erl_nif.h", because
what "erl_nif.h" does is: (1) fail to find it outside of -I dirs, (2)
then treat it as if it was written like &lt;erl_nif.h&gt;. Using &lt;erl_nif.h&gt;
skips (1).

More information can be found in 6.10.2 of the C standard.

Because the examples use "erl_nif.h", NIF projects in the Erlang
ecosystem copy this verbatim and make the same mistake.
</pre>
</div>
</content>
</entry>
<entry>
<title>update copyright-year</title>
<updated>2016-03-15T14:19:56+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2016-03-15T14:19:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=6664eed554974336909d3ffe03f20349cc4c38fd'/>
<id>6664eed554974336909d3ffe03f20349cc4c38fd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ose: Remove all code related to the OSE port</title>
<updated>2015-07-10T12:15:37+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas.larsson@erlang-solutions.com</email>
</author>
<published>2015-07-02T09:13:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c431a065ba515d27830f01c852f70940efb3003b'/>
<id>c431a065ba515d27830f01c852f70940efb3003b</id>
<content type='text'>
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change license text to APLv2</title>
<updated>2015-06-18T09:31:02+00:00</updated>
<author>
<name>Bruce Yinhe</name>
<email>bruce@erlang.org</email>
</author>
<published>2015-06-18T09:31:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=738c34d4bb8f1a3811acd00af8c6c12107f8315b'/>
<id>738c34d4bb8f1a3811acd00af8c6c12107f8315b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>BER decoding: Don't allow primitives with indefinite lengths</title>
<updated>2014-09-29T11:19:43+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-09-29T10:55:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=62bab9a7a2adbe3f1b7960a35d7dab1d7119c639'/>
<id>62bab9a7a2adbe3f1b7960a35d7dab1d7119c639</id>
<content type='text'>
According to the BER encoding rules, only constructed values may
have indefinite lengths. A primitive value must be encoded with
a definite length.

Reported-by: Simon Cornish
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to the BER encoding rules, only constructed values may
have indefinite lengths. A primitive value must be encoded with
a definite length.

Reported-by: Simon Cornish
</pre>
</div>
</content>
</entry>
<entry>
<title>BER decoding: Improve error checking for indefinite length</title>
<updated>2014-08-11T10:58:06+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-06-25T10:45:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7f385ebd984ed2931daa761819816b3e9da7d63c'/>
<id>7f385ebd984ed2931daa761819816b3e9da7d63c</id>
<content type='text'>
When an indefinite length was given, the decoder could look beyond
the end of the buffer for the 0,0 that signals the end of the value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an indefinite length was given, the decoder could look beyond
the end of the buffer for the 0,0 that signals the end of the value.
</pre>
</div>
</content>
</entry>
</feed>
