ASN1C v7.0.x Change Log
ASN1C 7.0.4 was released on January 9, 2017. Changes in this release include the following:
- Fix C/C++ PER length decoding to report an error when the decoded value is out of range (ASN-8874).
- Fix C/C++ PER decoding to eliminate a memory leak in the case where decoding fails. The fix changes generated code for SEQUENCE OF decoding, in cases where a list representation is used, to add dynamically allocated memory to the list immediately, before decoding, to avoid possibly leaking memory (ASN-8862).
- Fix a problem where a PER decoding error would not be detected (ASN-8860).
- Fix potential access violation in rtxHexDumpToStringEx() (ASN-8860).
- Fix a problem with the C# and Java run-times that could cause invalid license check failures (ASN-8858).
- Added support for open types to C OER code generation including support for table constraint code generation (-table-unions). This fixed an 'ASN-E-NOTSUPP ANY type' reported error. (ASN-8830)
- Fixed a possible null pointer de-reference issue in the C and C++ run-times (ASN-8774).
- Fixed an exception that would occur in the Visual C++ 6 licensed run-time if it needed to look for an external file.
ASN1C 7.0.3 was released on September 26, 2016. Changes in this release include the following:
- Fixed the "unknown publisher" warnings that appeared when installing ASN1C on Windows.
- Fixed encode handling of OCTET STRING DEFAULT value for Java and C#. The generated Java code was not compilable because the default value string was not quoted. In C#, the test for equality with the default value was incorrectly implemented and so default values would be encoded, contrary to the PER specification. (ASN-8775)
- Fixed decode handling of OCTET STRING DEFAULT value for Java and C#. After decoding an absent OCTET STRING with DEFAULT value, the corresponding field was not assigned the default value. (ASN-8793)
- Fixed a problem where some generated Visual Studio project files would produce an undefined symbol against GetAdaptersAddresses.
- Fix possible integer overflow prior to a memory allocation in the PER run-time (ASN-8679).
- Fixed a problem that could cause Visual Studio project files generated using the 64-bit GUI to reference 32-bit run-time libraries instead of 64-bit run-time libraries.
- Fixed a problem that would cause an unnecessary variable declaration in generated C code if -compat was specified to be a version older then v6.8 (ASN-8669).
- Fixed a problem with the GUI that would cause the GUI to crash if an attempt was made to remove a non-existent file from a project (ASN-8650).
- Fixed Java and C# PER encoding of open types when the user populates data structures using Asn1OpenType instead of a type representing the actual type. The problem manifested as an extraneous length being encoded (ASN-8624).
- Fixed errors in C PER decoding of fragmented lengths.
- Fixed a crash that would occur in the license manager if path to RLM license file was set but file was not present at that location.
- Fixed a problem where some generated makefiles would reference non-existent ASN1C run-time libraries (ASN-8643).
- Fixed a problem where the ASN1C GUI was defaulting to VS 2010 as the format for generated Visual Studio project files instead of VS 2013 (ASN-8643).
- Fixed a problem where the ASN1C GUI was not presenting VS 2015 as an option for generating Visual Studio project files (ASN-8643).
- Fixed possible memory related security issues with base 64 processing and converting dates and times to strings (ASN-8607).
- Fixed a problem in the C/C++ run-time that was causing poor performance (ASN-8581).
- Fixed a problem where a big integer value of zero would not be encoded correctly by the C# run-time (ASN-8615).
ASN1C 7.0.2 was released on July 5, 2016. Changes in this release include the following:
- Modified -lickey option to allow license key to be read from a text file using "-lickey @<file>" syntax where <file> would be replaced by path to file containing key value.
- Fix possible security issues in the memory allocator for C and C++ (ASN-8544) (CVE-2016-5080).
- Fix possible memory allocation related security issues in the PER run-time for C and C++ (ASN-8469).
- Fix to prevent stray newline being generated into C/C++ output in the middle of a type name, rendering the code uncompilable (ASN-8529).
- Fix for case where backward incompatible copy functions would be generated if -compat was specified with a release before 6.8 (ASN-8530).
- Fix for a bug in the C# run-time that would cause an exception to be thrown if the StringToBCD() method in the Asn1Util class was passed a string that contained the hex digit F (ASN-8540).
ASN1C 7.0.1 was released on May 4, 2016. Changes in this release include the following:
- Renamed Asn1Type setKey/SetKey(2) (Java/C#) to _setKey/_SetKey(2) to avoid name collisions when generating getter/setters and there is an element named "key" (ASN-8471).
- Fixed an issue where OCTET STRING default values were not presented as Java strings in Java code, making the code uncompilable (ASN-8471).
- Fixed Java/C# test code generation for size-constrained OCTET STRING to not violate the size constraint (ASN-8471).
- Fixed a bug in the GUI where C# project file generation options would override C/C++ project file generation options (ASN-8453).
- Fixes for C/C++ project file generation. When using the -o option, other paths need to be adjusted in the generated project to account for a different working directory (ASN-8431).
- Fix C/C++ code generation for SET OF X, where X is defined as NULL. Prior to these changes, the generated code would refer to X, but X was undefined (ASN-8431).
- Fix generation of C/C++ asn1Get_ helper functions (used with table constraints), to handle the possibility that the key type might require a forward declaration or might need to have a pointer type used (ASN-8431).
- Fix crash when generating a makefile and HTML and using -o option.
- Fix problem of functions in rtGetLibInfo.h not being included in the ASN1RT DLLs (ASN-8430).
- Fix C++ code generation related to enumerated types when using -use-enum-types. Some code was using just the ASN.1 name instead of the C/C++ name (ASN-8429).
- Fixed a compilation error in the rtxError.c file that is included in kits to allow users to add error messages to compact libraries. Also added makefiles rtError.mk, rtxError.mk, and rtXmlError.mk to assist users in compiling these files (ASN-8435).
- Fixed a bug in the GUI in which the Java Generate Metadata check box was not causing the option to be enabled (ASN-8405).
- Fixed a bug in C++ code generation when using -cpp11 -use-enum-types -genfree wherein the free function would illegally assign an int to an enum (ASN-8429).
- Fixed a bug in the C/C++ run-time that would cause the run-time not to search for a license file indicated by the ACLICFILE environment variable.
- Removed a pointless test from generated C code inside free functions. Some generated code was conditioned on the address of a non-pointer type field being not null, which it always is (ASN-8404).
- Fixed the encoding of OER unsigned unrestricted integers to not use leading zero bytes (ASN-8384).
- Fixed a bug in the C# run-time that caused the SetOpenType() method in the Asn1OpenExt class to be visible only if the run-time assembly included PER. The method should have been visible regardless of whether the run-time assembly included PER (ASN-8314).
- Fixed handling of extension elements for C/C++ and JSON encoding. Previously, JSON encoder/decoders treated the data structure for unknown extensions differently than other encodings, which would result in a crash when decoding from some other encoding and then encoding to JSON. Users of JSON should adapt their code if working with unknown extension elements. The generated extElem1 fields should be treated as a list of ASN1OpenType and not of OSUTF8NVP (ASN-8328).
ASN1C 7.0.0 was released on February 15, 2016. New features in this release include the following:
- Table Constraint Handling Added in Java/C# XML/XER.
- Java/C# XML Decoding Changed to Use Pull-Parser Model.
- Improved Support for Selecting Encode/Decode Functions.
- Improvements to C/C++ Integer Type Configuration.
- Windows C/C++ Run-time Libraries Built With Visual Studio 2015 have been added.
- Linux C/C++ Run-time Libraries Built With gcc v5.x have been added.
- More flexible licensing options.