ASN1C v6.8.x Change Log
ASN1C 6.8.6 was released on July 24, 2016. Changes in this release include the following:
- Fix possible integer overflow prior to a memory allocation in the PER run-time (ASN-8679).
- Add check to fragmented length decode to ensure max of 64K returned as per spec.
- Fix possible memory related security issues with base 64 processing and converting dates and times to strings (ASN-8607).
- Fix possible security issues in the memory allocator for C and C++ (ASN-8544) (CVE-2016-5080).
- 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).
- Fix possible memory allocation related security issues in the PER run-time for C and C++ (ASN-8469).
- Fixed -noOpenExt to work with JSON code generation (ASN-8329).
ASN1C 6.8.5 was released on January 29, 2016. Changes in this release include the following:
- Fixed several OER bugs. Fixed an unclosed comment in generated code. Fixed oerEncBitStr to correctly encode zero-length bit strings and to correctly determine the # of unused bits for bit strings having a length that is a multiple of 8 bits. Fixed the generated encoder for fixed-length bit strings having named bits (previously, it was encoding a length for the bit string). (ASN-8235)
- Fixed a bug in the Java/C# runtime that would ignore an invalid fragment length multiplier. Ignoring the error resulted in allocating more memory than the largest valid fragment size would have called for, meaning that under an error condition, we allocated an array that was larger by about 2M entries than could have legally been needed (ASN-8232).
- Fixed X.208 mode parsing so that a ChoiceValue could be specified in the ASN.1. Previously, a type/value mismatch error would be reported (ASN-8211).
- Fixed a bug where a valid macro parameter might be seen as syntactically wrong if the first letter was uppercase (ASN-8211).
- Enhanced C# code generation for ENUMERATED types to include definition of const ints that can be used in switch-case labels (ASN-8191).
- Fixed a bug in C/C++ XML/XER code generation where the generated decoder for a time string configured as char array would cause a C/C++ compiler error due to a type mismatch (char** required, but char* given) (ASN-8129).
- Fixed a bug in PER open type decoding where an unexpected end of buffer would produce invalid results rather than report an error (ASN-8119).
- Fixed a bug in the generation of C table constraint Append function in which element pointer was null causing a crash (ASN-8104).
- Fixed bug in Java and C# limited runtimes that don't include BER. For some licenses, the license check would consistently fail (ASN-8092).
- Fixed an issue that caused inconsistent use of compiler options across the different Visual Studio run-time builds (ASN-8086).
ASN1C 6.8.4 was released on November 5, 2015. Changes in this release include the following:
- Fixed resolve errors for several entity types (values, information objects, information object sets) that would occur if they were referenced using external module references rather than import statements (ASNVE-1874).
- Fixed a bug in which the generation of C initialization functions was reversed in the GUI (i.e. if box was checked, initialization functions were not generated and vice-versa) (ASN-8047).
- Fix some defects in ASN.1 pretty-printing (-asn1 option). These were related to generation of information object assignments, information object set assignments, and parameterized assignments (ASN-8056).
- Fix a problem with the rtxGetLibInfo() function that caused it to return a string that didn't contain "limited" even if the run-time was a limited run-time (ASN-8045).
- Add a function prototype for the rtxGetLibInfo() function (in new header file rtGetLibInfo.h> (ASN-8045).
- Fix generation of XSD when using -xml for the case of SEQUENCE OF CHOICE. The generated XSD did not correspond to the encoding that OSys-XER uses (ASN-8028).
- Fix C/C++ PDU encoder/decoders when -xml is specified to dynamically choose the document root element name based OSASN1XER flag (ASN-8025).
- Fix C/C++ encoding for large (64-bit) constrained integers, where the length determinant was incorrectly encoded (ASN-8001).
- Fix C++ code generation when -maxlines and -cppNs are used together: close the namespace scope before including secondary header file to avoid a nested namespace declaration (ASN-7981).
- Fixed a problem that could cause an incorrect RTERR variable name to appear in generated code (ASN-7950).
- Fixed a problem that could cause floating license server slots to continue showing up as in use even though the asn1c binary had run down (ASN-7950).
- Fixed a problem that would cause incorrect asn1Init function references to appear in generated code when a prefix was defined and -compat was specified with a version older than 5.5 (ASN-7826).
ASN1C 6.8.3 was released on August 31, 2015. Changes in this release include the following:
- Added MDER encode/decode functions to Asn1Type and Asn1TypeIF to support polymorphic encoding/decoding (ASN-7943).
- Fixed a crash in asn2xsd when unsupported types are used in the input ASN.1 specification. Also, improved handling of useful time types (ASN-7872).
- Fixed a bug in C/C++ test code generation in which the populated data would sometimes violate a table constraint (ASN-7931).
- Fixed a bug that would cause the ASN1C GUI not to open after an evaluation license key was activated on Macintosh systems (ASN-7876).
- Fixed a bug that would cause the ASN1C GUI on Macintosh systems to write a .lic file during evaluation key activation to a location where the asn1c code generator binary would not see it (ASN-7876).
- Fixed a bug in the C# XML encoding of REAL values. The decimal point character would not always be a dot, depending on the system settings (ASN-7877).
- Fixed a few bugs C# VS project file creation (ASN-7877):
- The -bindir/-prjdir setting will now affect the output folder.
- Directory names are now enclosed in quotes to protect against paths with spaces.
- If acgui was used, the path to the asn1c executable in the prebuild event should be correct now.
- When -dirs is used, that is reflected in the files listed in the C# project.
- We no longer use spaces in the C# project's RootNamespace or AssemblyName settings.
- Relative -I paths are set correctly in the asn1c invocation for the prebuild event.
- Fixed C# makefile generation in the case -prjdir is used. Various paths in the generated makefile would be inconsistent.
- Fixed bugs in C# writer generation (ASN-7877):
- Incorrect invocations of "set" have been replaced with "Set".
- When -XER is specified but is not the chosen encoding for the writer, we no longer produce code that uses an undefined "cxer" variable.
- Fixed a bug in C/C++ BER decoding in which a zero-length BIT STRING was reported to be an error when it had named bits and a size constraint; see X.690/2008 220.127.116.11 (ASN-7779).
- Fixed a bug that could cause an incomplete message to decode successfully. This affected C/C++ BER decoders and could happen during the decoding of an open type if the end of the input buffer was unexpected reached(ASN-7826).
- Restored earlier behavior regarding linked list iteration. In earlier versions, if the user populated a list in a non-self-consistent way (i.e. the count is less than the actual number of nodes in the list), we would honor the count when iterating the list. This changed when the generated code was modified to iterate the entire list, regardless of the count field. In this release, the earlier behavior is restored (ASN-7832).
ASN1C 6.8.2 was released on June 11, 2015. Changes in this release include the following:
- Fixed a bug in the rtxStreamMemoryCreateWriter function in the C runtime library that caused the memory stream writer to dynamically create a buffer even when a backing byte array was used (ASN-7756).
- Fixed issue with use of <perEncoding> configuration variable in which referenced element type was not being set to NULL if -depends not used (ASN-7723).
- Fixed a bug in the C/C++ runtime for the XML formatting of REAL values, which caused some values to be multiplied by 10 (SUP-9312).
- Fixed a bug in the GUI in which the cfile and hfile were not properly applied (ASN-7733).
- Fixed a bug when using the <perEncoding> configuration file option that could cause incorrect alignment for user-specified encodings (ASN-7723).
- Fixed a bug in the C/C++ PER code generation that could occur when memory allocation failed while decoding optional elements enclosed in versioning brackets (ASN-7715).
- Fixed a regression in Java PER code generation in which invalid code might be generated for enumerated types (ASN-7692, ASN-7109).
- Fixed a bug in the C/C++ PER runtime that caused optimized runtime libraries to overwrite a single byte near a buffer boundary (ASN-7687).
- Fixed a bug in Java PER decoding in which extension elements that had CONTAINING types were improperly decoded (ASN-7675).
- Fixed a bug in code generation for XER, for C# and Java, related to extension group elements. If an extension group was present, the generated code was non-compilable (ASN-7671).
- Fixed a bug in command-line options checking; ASN1C did not report errors when attempting to use a professional feature with a standard SDK license (ASN-7654).
- Fixed a bug in ACGUI that made some generated Java files unviewable (ASN-7629).
- Fixed a defect in C/C++ code generation for SEQUENCE OF types in which an infinite loop could occur if a tag match operation failed. (ASN-7624).
- Added support for generation of pure parsers in C/C++ that implemented the "table unions" model for table-constraint handling (see our white paper). Previously, only legacy table constraint code was generated which was not thread-safe and not as performant as the newer model (ASN-7595).
- Added capability to specify the name of the DLL to be built by a generated C# makefile via the -genmakedll option (ASN-7576).
ASN1C 6.8.1 was released on April 17, 2015. Changes in this release include the following:
- Added capability to the GUI to display generated source files.
- Changed behavior of rtxStrncpy to always terminate destination buffers. Previously, if the source and destination buffers were the same size, rtxStrncpy would not terminate the destination; now it terminates the destination buffer and returns a null pointer (ASN-7596).
- Fixed a bug in the Java PER runtime in which fragmented octet strings aligned on a 16k boundary did not have the proper padding byte written (ASN-7587).
- Fixed a bug in which a warning indicating import file not found would show up at times when the import file was present (ASN-7552).
- Fixed a bug in the GUI in which project not loaded when GUI was started by double-clicking the project file in Windows (ASN-7593).
- Fixed an issue in the GUI in which duplicate lists of items would be displayed in a compilation was done a second time.
- Fixed a crash in the GUI that would occur if a value was specified for the compilation output directory (ASN-7543).
- Fixed a crash that can occur when closing an unaligned PER open-type extension where the extension element aligns exactly at the end of the encoding buffer (ASN-7578).
- Fixed a bug in the C/C++ runtime that could cause hex strings to be improperly converted to ASCII. This impacts generated XML decoding logic for open types (ASN-7568).
- Fix issues in the generation of XSD for REAL type elements, following ObjSys proprietary XML encoding rules. The fix included adding generation of minInclusive/maxInclusive facets when appropriate. We also fixed generation of default attributes (removal of trailing 'd' character in the value) (ASN-7563).
- Fixed a situation in which generated C# code might get compilation warnings due to a variable named elemLen that was declared and initialized but never used (ASN-7524).
ASN1C 6.8.0 was released on March 4, 2015. New features in this release include the following:
- Logic has been added to automatically create unique C/C++ value names if values with the same name are present in different modules in a compilation. This is done by creating a value prefix for one of the modules using the module name.
- Modified C/C++ XML decoding to convert open type data to binary form if the content is detected to be an xmlhstring.
- The Visual Studio projects for the C and C++ samples have been migrated from Visual Studio 2008 format to Visual Studio 2010 format.
- Java and C# have added capabilities for working with some ASN.1 metadata derived from the input specification; use –genmetadata to generate isRequired and getValueRange methods.
- A new graphical editor for ASN.1 specifications is included with ASN1C; it is integrated with the compiler and can be used to create ASN.1 projects.