ASN1C 7.6.4 was released on March 24, 2023. Changes in this release included the following:
- Fixed a bug in the C NAS addon. 24.008 TFT decoding failed to set paramList.n to zero for an empty parameter list (A1C-982).
- (Enhancement) The C/C++ raw event handlers can now respond with ASN1RER_STOP_PARSE to stop any further parsing.
- Fixed Java and C# integer bounds checking. In some cases, we were missing constraint checks (A1C-952).
- Fixed some issues that could cause ASN1C not to be usable on Mac systems. This fix necessitated a change from .tar.gz files to .zip files for distributing ASN1C for the Mac.
- Fixed a defect that caused run-time distribution files for x64-based Mac systems (those with macosx in the file name) to be empty.
- Fixed a defect in C/C++ raw event handlers where a runtime function for decoding integers (pd_ConsUInt64 and others) did not handle receiving a null pointer (A1C-924).
ASN1C 7.6.3 was released on December 27, 2022. Changes in this release included the following:
- Fixed a bug in C/C++ JER decoding for SEQUENCE OF using a dynamic array in which a crash could occur due to initializing a element before expanding the temporary buffer (A1C-913).
- Fixed generation of C/C++ raw events parser to eliminate some uses of an undeclared identifier (A1C-894).
- Fixed a bug in C/C++ test code generation where, if a file name is specified with the -gentest option, the generated C file could be missing some #includes. (A1C-889)
- Fixed a bug in C/C++ generation where comments were prematurely closed as a result of having */ in ASN.1 comment text. (A1C-889)
- Fixed bugs in C/C++ test code generation related to BIT STRING types and header file includes. (A1C-854)
- Added release 17 of various LTE specifications to SDK kits.
- Fixed bug in C PER bit string encode for extensible string configured to be dynamic (A1C-828).
- Fixed Golang PER encode of fixed size BIT STRING to not override the number of bits provided by user (A1C-815).
- Fixed Golang aligned PER open type decoding to consume padding bits. Prior to this, if the actual type in the open type did not use a full number of bytes, the decoder's position would be off after decoding the open type and subsequent data would be incorrectly decoded (A1C-815).
- Fixed Golang PER encoding of SEQUENCE OF/SET OF constructs having more than 16K elements (A1C-842).
- Fixed an exception that would occur if -java and -json were specified when the ASN.1 contained EXTERNAL (A1C-886).
- Fixed bug in C/C++ SEQUENCE encoding in which extension bit variable for the SEQUENCE was getting overwritten by encoding extension bit for extended INTEGER elements (A1C-757).
ASN1C 7.6.2 was released on September 15, 2022. Changes in this release included the following:
- Fixed a Java/C# test generation bug where empty table-constrained information object sets generated incomplete test code. (A1C-771)
- Fixed issue with Golang code generation for open types where the PER encoder and decoder did not agree on the use of the T values for the open type struct. Also addressed problems with Golang PER encoding and decoding of unknown open type and open type fragmentation. (A1C-780)
- Fixed a superfluous error message caused by having a parameterized type used inside a type constraint. (A1C-735)
- Fixed missing #includes for C/C++ OER decode when using the -cfile option. (A1C-735)
- Fixed bug in C/C++ SEQUENCE decoding in which extension bit variable for the SEQUENCE was getting overwritten by decoding extension bit for extended INTEGER elements (A1C-757).
- Changed Asn1BitString.readObject in Java runtime so that it would not throw a NullPointerException if the value array is null (A1C-737). This only affects users of Java serialization.
- No longer treat NULL type as a PDU type. This eliminates code that is virtually useless and also fixes a defect where for C++ and JER, the generated code in such a case would fail to compile (A1C-749).
ASN1C 7.6.1 was released on April 22, 2022. Changes in this release included the following:
- Fixed a bug in the Java runtime that would cause a NullPointerException when -trace was used, bit tracing was not enabled, and a type with a contents constraint is decoded (A1C-657).
- Fixed a bug that could cause an invalid "file not found" message to be displayed when activating a client.lic file (SALES-1865).
- NAS Add-on fix: The handling for 24.501 Registration Request was corrected and an improvement was made for the modeling of psi in Service Request. The change for psi introduces a minor backward incompatibility with existing user source code (A1C-581).
- Fixed a bug in Go code generation in which if the code was generated outside of the ASN1C hierarchy or if the -o option was used to generate the code in a different directory, compilation would fail (A1C-593).
- Fix big float support to remove reliance on subnormal floating support. This was an issue for the VMS operating system. (A1C-625)
- Fixed a bug in Go PER code generation in which constrained integers with a bit range greater than 32 bits were not being decoded correctly. (A1C-627)
- Fixed a bug in Go PER code generation in which the length of a component contained within a contents constraint (CONTAINING specification) in an OCTET STRING was not computed correctly in the case of decoding. (A1C-601)
- Fixed a bug in Go PER code generation in which open type data was not being decoded correctly.
ASN1C 7.6.0 was released on January, 28, 2022. New features in this release include the following:
- Added auto-indent capability to ASN1C GUI ASN.1 schema editor.
- Added the capability to the ASN1C GUI to create and edit ASN1C configuration XML files. This includes code completion capabilities.
- Changed the way new schema files are created in the ASN1C GUI to not require a user to immediately choose a file. An empty "Untitled" file can now be edited and the file would be not be created until the file is saved using the Save or Save As command. This is also when the file is added to the project.
- Removed MDI mode from the ASN1C GUI. Only tabbed mode is now supported.
- Added the -noEnumConvert option to the ASN1C GUI.
- Modified printing of BIT STRINGs with named bits for C, C++, Java, and C# so the names of the bits and their values are printed.
- Added C++ samples for decoding a file of CDRs with TS 32.297 headers.
- Changed the name format of asn1Append functions to include type name to be consistent with other named functions. Note that this will affect backward compatibility. (A1C-342)
- Added shared object (.so) libraries to the lib_compact directories for non-Windows C/C++ run-time distributions.
- Modified the behavior of the -x64 option so it establishes 64 bits as the default size for unconstrained integers.
- Added the <testValue> element configuration item to allow setting elements to specific values for test code generation.
- Added an fba (floating binary all) C/C++ run-time kit type for platforms where RLM floating licenses are supported (Windows (VS 2015 and higher), Linux on Intel, and macOS on Intel).
- Added a partial decoding feature for C/C++ PER, allowing users to generate decode functions that return just the certain nested values from within the outermost type.
- Added exception handler support for Java/C# BER decoding.
- Added a C# sample to illustrate how to skip an invalid CDR when decoding a file of CDRs.
- Added README files to the c and cpp directories of embedded run-time distributions.
- Added C/C++ run-time libraries built with Visual Studio 2022 to Windows SDKs.
- Added the capability to generate Visual Studio 2022 project files to Windows SDKs.
- Added Visual Studio 2022 as an option for C/C++ run-time library distributions on Windows.
- Changed the behavior of C/C++ decoding so constraint violations will no longer stop the decode. The message will be fully decoded, but an error status is still returned to the caller. The information about the constraint violations is in the context structure. Decode operations for other languages is not changed; i.e., a constraint violation will stop the decode.
The following defects were fixed in this release:
- Fixed a defect where -cpp11 would produce non-compilable C++ code for UniversalString and BMPString. (A1C-428).
- Fixed a defect in C++ PER decoder where a C++ object would be unsafely initialized using memset (A1C-442).
- Fix a crash in C/C++ caused by dangling pointers left in the context after calling rtxMemFree on it (A1C-477).