Objective Systems, Inc.  
Home
About ASN.1
Products
Web Tools
Open Source
Documents
Services
Resources
Resellers
Customers
Careers
About Us
Contact Us
 
 
 
Objective Systems, Inc.
Objective Systems, Inc.
Real World ASN.1 and XML Solutions

ASN1C Release Information

The current production release version of the ASN1C compiler is 5.64. The following changes have been made since the last patch release (5.63):

Fixed bug in Java PER encode/decode of large integer values.
Fixed bug in C streaming BER decode logic. If socket stream was used and socket was closed during decoding of an Open Type then an infinite loop could occur (PR #000118).
Fixed C run-time rtStreamBufClose function. If flush was unsuccessful when stream was not closed then memory for internal buffer was not being unlocked (PR #000118).
Fixed C run-time rtCmp functions that take a buffer argument to provide a textual description of the comparison status. Text buffer overruns were occurring. Also changed logic so that if NULL was passed as the buffer argument, the textual information would not be written (PR #000116).
Fixed Java XER encoding of REAL value, sometimes the encoded value was not formatted correctly. Also removed extra '+' sign in exponent as specified in X.693, 9.2.5 (PR #000114).
Fixed bug in ASN1CTime::addMilliseconds method - it worked incorrectly with TZ > 0 and time near midnight (00:00) (PR #000113).
Fixed bug in Java PER code generation for multiple value range constraints on integer type definitions (PR #000112).
Fixed bugs in table constraint processing in which parameterized information objects were not being resolved (PR #000111).
Fixed bug in which it was not possible to change decode buffers after the initial buffer was set using the ASN1BERDecodeBuffer::setBuffer method (PR #000110).

The following changes were made in v5.63 from the previous release (v5.62):

A bug in the decoding of unsigned integers for streaming BER was fixed. The destination variable was not zeroed before decoding started. (PR #000092)
A bug in cpp/sample_ber/eventHandler/writer.cpp was fixed: the optional bit for "children" was not set. (PR #000093)
Fixed issues in porting ASN1C to FreeBSD 5.1. (PR #000094)
Fixed memory leak when encoding ASN.1 open types using BER. (PR #000095)
Removed use of wchar_t type in BMP and Universal string encode logic due to potential portability problems (used ASN116BITCHAR and ASN132BITCHAR respectively). (PR #000096)
A bug in EOC detection in BER streams was fixed. EOC was not being detected when it was split across a buffer boundary. (PR #000097)
A bug in asn1Free_xxxx function code generation for CHOICE was fixed. Sometime incorrect 'case' values in 'switch' would appear if choice contained NULL alternatives. (PR #000098)
A minor bug was fixed in the rtStreamClose function. Flags were reset before call to 'close' function, which might have lead to incorrect closing and error reporting. (PR #000099)
Fixed bug in GeneralizedTime in Java. Seconds fraction (after .) leading zero was truncated. This was required for millisecond and microsecond calculations. (PR #000100)
A bug in copy routines code generation was fixed. If SEQUENCE had forward referenced or dynamic elements, then memory was not being allocated in generated asn1Copy_* function. This caused a crash. (PR #000101)
A bug in the compiler output class in which the write method incorrectly determined newline condition was fixed. This would occur if the given text had zero length. This caused incorrect code generation on PowerPC Linux. (PR #000102)
A bug in the copying of big integer values was fixed. (PR #000103)
A memory leak in generated C PER decode functions was fixed. This occurred when local contexts were used to decode open types. (PR #000104)
Fixed warnings of GCC compiler with -Wall option. (PR #000105)
Modified code in C/C++ run-time libraries to always check result of memory allocation operations for NULL. (PR #000107)
A bug in the use of rtMemReset with streams was fixed. (PR #000108)

The following changes were made in v5.62 from the previous release (v5.61):

Updated EXPAT XML parser library to v1.95.7. EXPAT is the default XML parser library used for C/C++ XER/XML SAX handlers.
Fixed problem with Java run-time library string classes in which use of an empty string was causing null pointer exceptions. (PR# 000088)
Fixed problem with C/C++ PER code generation with -noOpenExt option in which generated free routines were not taking into account the absence of the 'extElem1' element in generated types. (PR# 000081)
Fixed memory leak in PER C++ run-time library. (PR# 000080)
Fixed bug in print-to-string functions in which extra null-terminator character in strings was not being account for. This was causing a buffer overrun in some situations. (PR# 000079)
Fixed PER bit-trace logic when table constraints were specified. Bit trace included both open type and decoded fields. (PR# 000078)
Fixed bug in front-end in suppressing constraints if -lax was specified. This could have led to invalid PER encodings of constrained types. (PR# 000077)
C/C++ XML/XER code generation for dynamic named bit string fixed (PR# 000075)
Java PER event handling logic modified so that all primitive types now cause content handlers to be executed. Before, only elements within constructed types caused handlers to fire.
Fixed PER constraint processing logic so that a constraint extension on the constraint list now makes all constraints extensible. This fixed the problem of "(SIZE (x..x,...))" not being handled that same as "(SIZE (x..x),...)" (PR# 000074)
Fixed type-casting of forward referenced SEQUENCE OF constructs in C++ XML/XER code generation (PR# 000073).
rtGetMinusZero and rtGetNaN function prototypes changed from "name()" to "name(void)" because of ARM compiler warnings (PR# 000072)
Added '-pdu *' command-line option to allow all productions in spec to be treated as PDU's

The following changes were made in v5.61 from the base release (v5.60):

Modified compiler to parse (and ignore) ENCODING-CONTROL sections in an ASN.1 specification.
Removed reference to <ctype.h> header file and replaced referenced definitions with local versions of the functions/macros. This was causing a portability issue between different versions of Linux.
Fixed problems with Java event handler callbacks:
- extension element name set to ... when unknown extension item received
- added logic to trigger event for PER CHOICE extension value
- added logic to trigger event for BER SEQUENCE, CHOICE, or SET extension value
- added event handler calls to generated EXTERNAL and EMBEDDED PDV code
Fixed generation of toString method for enumerated types
Fixed compilation warnings from HP aCC compiler
Fixed Java BIT STRING print logic: Asn1BitString.toString, if bit string contains more than 16 bits, it is printed as hexadecimal string with 4-bits round up logic. Previously it was 8-bits round up logic.
C/C++ code generation, removed value range constraint check for boundary value of the int type.
C/C++ code generation, fixed bug in PER encoding of semi-constrained integer values.
XML Schema code generation fixes:
- corrected tag code generation for int and enumerated type
- fixed problem of crashing when dummy element encountered
Corrected output directory selection logic in the GUI, also disabled event handler selection when XER or XML encoding rules selected.
C/C++ print and printtobuffer code generation: Extended enumerated type will print the enumeration value instead of "???"
C/C++ XML rules, Added xml2der sample program and corrected encoding and decoding problems with multiple rule selection with -xml option.
Updated parser/yacc file to allow any kind of space in EXTERNAL type and value reference names.
C/C++ code generation, fixed bug in logic to include header file for EXTERNAL type when it is used in a specification.
C/C++ code generation, fixed circular/infinite loop error in MemFree function generation for recursive optionals element in constructed type.
Java Code generation, fixed numbits count logic for all known character string types, with permitted alphabet constraint. Also, fixed reindexing logic, only required if max value > (2 ^ numbits - 1), error was exist as, unaligned rule uses reindexing and aligned rule doesn't use reindexing.