You can avoid calling ossCpyValue() to copy the decoded PDU by simply providing the output buffer for the decoder. All you need to do when calling the decoder is to set the last parameter to a valid address of the big-enough buffer and call ossSetDecodingLength() to set the size of the buffer provided, and the entire decoded PDU tree will be placed in the buffer of your own.
If you do not know the size of the output buffer to provide, call ossDecode() with the last parameter set to a NULL pointer to tell the decoder to allocate the output memory for you, then call ossGetDecodingLength() to get the total size of the buffer needed to hold the decoded PDU. To free the memory tree allocated by the decoder (when you pass a pointer to a NULL pointer in the last parameter), call ossFreePDU().
The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.
Test drive the OSS Nokalva ASN.1, LTE, and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.
Our expert personnel can help you learn ASN.1!
We offer 4-day ASN.1 courses at our headquarters or your premises.