ASN1C v6.4.x Change Log
The latest production release version of ASN1C v6.4 is 6.4.7, released on . Bug fixes that went into this release include the following:
- Fix possible security issues in the memory allocator for C and C++ (ASN-8544) (CVE-2016-5080).
The latest production release version of ASN1C v6.4 is 6.4.6, released on January 27, 2012. Bug fixes that went into this release include the following:
- Fixed a possible mutual recursion in Java runtime caused by
using
BIT STRING
s with size constraints larger than 64k (ASN-4103). - Fixed a Java code generation issue with named integers that
could cause decoding failures when
–compact
was specified on the command-line (ASN-4064). - Fixed a C++ code generation failure that could cause
XER
ENUMERATED
types to be improperly decoded or crash an application (ASN-4007). - Fixed a bug that occurred when duplicate
asn1Append
functions were generated in C PER code generation (ASN-3999). - Fixed a bug in which indirect references to type fields in an information object set could cause an assertion failure during C/C++ code generation (ASN-3999).
- Fixed incorrectly encoded lengths for fragmented open types of size greater than 16k in the C/C++ PER runtime (ASN-3993).
- Fixed a segfault that would occur in C/C++ PER runtime libraries in the SDK when a fragmented open type (length greater than 16k) was encoded (ASN-3993).
- Fixed Java PER decoding for extended elements of the
ENUMERATED
type (ASN-3976). - Added Java runtime encoding and decoding functions to support
the use of
MAX
andMIN
constraints onBIT STRING
types (ASN-3937). - Fixed a bug in which a generated C# writer program would ignore range constraints on REAL values (ASN-3918).
- Fixed a bug in which an information object's name that conflicted with a C++ keyword appeared in generated code both with and without a final underscore, making the generated code uncompilable (ASN-3956).
- Fixed encoder/decoder defects which occurred when compiling XSD having a repeating sequence group with a single element. The problems were manifested in all target languages.
- Fixed a bug in generated C/C++ XML decoders for the decoding of open types when -table-unions is specified. The symptom was that expected elements were reported as unexpected, but it is possible that the bug would manifest in other ways related to the parser becoming confused as to where it is in the parse (ASN-3995).
- Fixed a bug in determining the XML element name to use with open types. In cases where the actual type was specified via a table constraint and corresponded with a defined object, the name of the information object was incorrectly used as the XSD element name, rather than using the name of the actual type (ASN-3995).
ASN1C 6.4.5 was released on November 14, 2011. Bug fixes that went into this release include the following:
- Changed configuration file behavior to allow users to set
storage type of
BIT STRING
elements (ASN-3924). - Fixed a bug in which a generated C# writer program would specify an incorrect value for a bit string item (ASN-3918).
- Fixed a bug in which C# code generated from an ASN.1 specification that applied a range to a REAL item would not compile (ASN-3918).
- Fixed a bug in which named and sized bit strings did not have proper constraint checks generated (ASN-3914).
- Fixed a bug in which named bit strings were improperly truncated in C/C++ code generation (ASN-3906).
- Fixed a bug in which relative paths passed to
–hfile
caused problems with generated files and makefiles (ASN-3899). - Fixed an issue in which choice tag constants did not acquire the type prefix specified in a configuration file (ASN-3898).
- Fixed an issue in which extended ASCII characters could cause improper sign extension on decode of 8-bit character strings (ASN-3894).
- Expanded <isOpenType/> predicate to work with Java code generation (ASN-3838).
- Fixed a bug that caused numerous linker warnings to be generated when using the Visual Studio 2010 C++ debug libraries (ASN-3826).
- Fixed a bug that caused empty open types to be improperly truncated in PER encoding (ASN-3816).
- Fixed a bug in Java and C# that could cause stack overflows by generating mutually recursive calls (ASN-3802).
- Fixed several issues related to Java code generation
(ASN-3756):
- fixed a segmentation fault that would occur when generating
XER or XML code for information objects with
–tables
enabled; - fixed an error in which incorrect code was emitted for
defined types that were PDUs for XER or XML that caused
invalid references to
SaxHandler
classes; - fixed an error in which
NULL
types were used improperly in compact code generation for XER/XML; - fixed an error that caused unnecessary
Asn1Exception
s to be thrown in set methods; - fixed an error in which XML namespaces were improperly generated for imported modules;
- fixed an error in which
Asn1XerOpenType
s were not properly encoded to BER; - updated the
Asn1MissingRequiredException
to return both the name of the missing element as well as its offset; - updated BER code generation to throw an
Asn1MissingRequiredException
on encode if required elements were missing; - improved typename selection for
ENUMERATED
when–compact
is used.
- fixed a segmentation fault that would occur when generating
XER or XML code for information objects with
- Fixed an issue with compiling XSD having two xs:imports for the same namespace and different schemaLocations. The compiler reported errors indicating that a module could not be found and that some types were not defined (ASN-3920).
ASN1C 6.4.4 was released on October 4, 2011. Bug fixes that went into this release include the following:
- Fixed a bug that could cause the peekTagAndLen() method of the ASN1BERDecodeStream class to return incorrectly a status of -101 (invalid length) (ASN-3798).
- Visual Studio 2010 unlimited run-time kits will now contain debug C++ libraries (ASN-3790).
- Fixed a bug in C# code generation that could cause
SEQUENCE OF
items in aCHOICE
to emit invalid code (ASN-3761). - Fixed several issues in Java code generation (ASN-3756):
- Values that would fit in an unsigned integer in C/C++ are
now automatically upgraded to
long
types; CHOICE
elements with hyphens were causing invalid code to be emitted;ENUMERATED
elements were being improperly referenced by their base type, causing import errors;- types assigned to
TYPE-IDENTIFIER.&Type
no longer emit improper decoding functions in XER/XML; - types called
Attributes
andlevel
no longer cause name conflicts; - users are now notified when modules have the same name and OID.
- Values that would fit in an unsigned integer in C/C++ are
now automatically upgraded to
- Fixed a bug in C/C++ decode code generation for table unions when the key value type was a CHOICE with an OID selection. This appeared when trying to generate code with a populated RANAP PrivateIE information object set with the id field set to use an OID value (ASN-3737).
- Updated C memory free functions to properly release memory
for
EXTERNAL
types; in some cases memory leaks could occur (ASN-3735). - Under some circumstances deleting an ASN1BERDecodeStream instance could produce an exception. This problem has been corrected (ASN-3728).
- Asn1OctetString (Java and C#) PER decode method now properly initializes the value so that instances of this class can be reused (ASN-3726).
- Updated C runtime so that print-to-stream functionality would be completely thread-safe by removing static references for indentation (ASN-3719).
- Updated C# and Java PER decoding of constrained whole numbers so that out of range values are reported as errors. Previously, some out of range values were decoded without reporting an error (ASN-3773).
- Modified generated table-constraint-checking code for Java and C# to stop writing to System.out/Console when throwing an exception and to simply throw the exception (ASN-3785).
ASN1C 6.4.3 was released on August 10, 2011. Bug fixes that went into this release include the following:
- The
–arraySize
option now respects array sizes as described in ASN.1 specifications and will not override them (ASN-3687). - Function prototypes and declarations for C print to string p4 and compare functions are now split over multiple lines just like the ones for encode, decode, and print functions (ASN-3677).
- ASN1C enterprise kits now include debug DLLs. (ASN-3676 and ASN-3685).
- Fixed a bug that caused parameterized types to be treated
as primitive when they were actually constructed during deferred
decoding (by using
<isOpenType/>
in the configuration file; ASN-3672). - Fixed a bug with the run-time DLLs for Visual Studio 2005 and higher that could cause client applications not to run (ASN-3665).
- Fixed a bug in C# makefile generation that caused no commands to be generated to build a reader or writer executable if those options were specified in the ASN1C command (ASN-3656).
- Modified makefile generation in cases where
-depends
was used in conjunction with types likeEXTERNAL
so that appropriate object files would be compiled (ASN-3632). - Modified the makefile generation logic so -html is specified in the makefile's ASN1C command if it was originally specified and so delete commands for .html files and asn1-style.css are generated in the clean target (ASN-3631).
- Fixed test code generation so that table constrained values would be properly populated (ASN-3624).
- Fixed a bug in the C# runtime that caused instances of
Asn1DateTime
to throw an exception when decoded from a BER decode buffer (ASN-3568). - Modified the compiler syntax checker to report an error if a class field which is not valid for use in an object class field type specification is used as per X.681 clause 14. The compiler was silently ignoring these type specifications prior to this fix. (ASN-3556)
- Fixed a bug that would cause a namespace specified with -cppns to be unnecessarily generated as a prefix to encode and decode functions, causing some C++ compilers to report errors (ASN-3551).
- Fixed a bug that caused an exception when dealing with complex object set definitions in C# (ASN-3547).
- Fixed a bug in code generation for Java and C# that would cause some bit strings with the final bit set to be improperly truncated (ASN-3521).
- Fixed a bug in the Java and C# runtimes where size constraints on UTF8String would be treated as PER-visible, but they are not.
- Fixed a bug where asn1c would report an assertion failure: Assertion 'getBaseTypeId() != AC_ANY' failed. Line 351, File acgenjavaberdecode.cpp. This occurred when a type was defined as an open type (e.g. MyOpenType ::= TYPE-IDENTIFIER.&Type) (ASN-3643)
- Fixed a bug in generation of Java Ant build file. When -depends option was given, a left angle bracket was missing. (ASN-3654)
- The command line option "-compat 6.3" will now ignore target language reserved words added in version 6.4. Without this, some generated names may differ between 6.4 and 6.3 (having a trailing underscore in 6.4) (ASN-3534).
- Fixed a bug in the encoding of NumericString for Java and C# (ASN-3694).
- Fixed an issue where, in some cases, elements would be erroneously reported missing. This could occur for certain component types when another component was either a sequence-of or open type (ASN-3696).
ASN1C 6.4.2 was released on May 25, 2011. Bug fixes that went into this release include the following:
- Fixed a PER encoding bug in C/C++ runtimes that would cause named BIT STRINGs to be encoded with the wrong number of bits.
- Fixed a bug in the generation of C code with -table-unions in which an asn1Get_ helper function would not compile if the key value was an OBJECT IDENTIFIER.
- Fixed a bug in
rtPrintToStringHexStr
that caused the output to be inconsistent with output directed tostdout
(ASN-3491). - Fixed a bug in type resolution in which resolution would at times silently fail in complex ASN.1 files with a lot of interdependencies. (ASN-3461).
- Fixed a bug in Java code generation that caused
endElement
methods not to be called (ASN-3464). - Fixed a bug in Java XML decoding that caused the
Asn1Null
andAsn1Enumerated
types to be improperly skipped (ASN-3462). - Fixed a bug that caused the -warnings qualifier not to be propagated to a generated makefile or project file if it was specified on the original ASN1C command line (ASN-3445).
- Fixed issues with resolving parameterized type uses when used within information object type fields. Also fixed a problem when the governor on a parameterized type parameter is defined as a parameter in the parameter list (for example, AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet}) (ASN-3442).
- Fixed several defects in the Visual C++ 6 project (.dsp) files that are supplied with the ASN1C C and C++ run-time library source kits (ASN-3439).
- Added more explicit output to Java and C# print functions when table constraints were specified. Index elements that have a textual representation in addition to an integer representation (e.g., id-MME-UE-S1AP) will be printed textually (ASN-3388).
- Added Visual C++ 6 project (.dsp) files for the MDER and OER run-time libraries.
ASN1C 6.4.1 was released on April 5, 2011. Bug fixes that went into this release include the following:
- Added an
equals()
method to the Java runtime for theAsn1OpenExt
class (ASN-3435). - Fixed a bug in the Java runtime that caused round-trip open type encodings for BER to break when XML was also targeted (ASN-3425).
- Fixed a bug in Java XML code generation that caused extended ENUMERATION types to go "missing" in some cases (ASN-3419).
- Fixed several defects with the Visual C++ 6 project files (.dsp files) that are supplied with some of the C and C++ samples (ASN-3407).
- Fixed a pair of bugs related to the use of extensible constraints with BIT STRING and SEQUENCE OF types. These would cause code to be generated that would not compile (ASN-3397).
- Fixed a code generation bug for Java for extended ENUMERATION types; XML decoders did not recognize extended values (ASN-3396).
- Fixed a bug in resolving the module in which the CLASS definition passed into a parameterized type was declared in (ASN-3389).
- Added reader and writer execution to generated ant scripts for Java. Excluded those generated files from being deleted in the clean step (ASN-3384).
- Changed build packages to include debug DLLs in ASN1C SDK packages (ASN-3381).
- Fixed named BIT STRING decoding in BER for all languages. Trailing zero bits may be truncated in named bit strings in BER regardless of size constraint; decode logic was updated to properly recognize truncated bit strings (ASN-3376).
- Fixed a bug related to generation of XSD. The generated XSD for SEQUENCE OF involving BIT STRING would not always match how the generated XML encoder behaved (ASN-3354).
New items in the initial 6.4.0 release include:
- Support added for Medical Device Encoding Rules (MDER) and the OCTET Encoding Rules (OER).
- Additional helper methods are now generated in Java and C# to assist users in working with code that uses table constraints. Error reporting is also improved to show the full path to the element in which an error was detected>
- The format of constants generated in C/C++ for items in Information Object Sets referenced in Table Constraints has been improved to not use embedded sequential numbers. See our blog post which describes the changes.
- The capability to configure shorter code names was added via the introduction of the <alias> configuration element.
- The -html switch was added to provide generation of HTML files from the ASN.1 input sources based on what the compiler sees and supports.
- The capability to specify a single output file or one file per ASN.1 spec was added for C# code generation.
- Support was added for Visual Studio 2010 including project file generation in the updated format.