How do I free up the decoder's output buffer?

If you did not pre-allocate your own output buffer for the decoder, you can simply call the ossFreePDU() function to free it up. The code for this looks like:

MyASN1DataType *DecodedDataPtr = NULL; /* address of decoded data */
  . . . .
  rc = ossDecode(world, &myPduNum, &encodedData, (void **)&DecodedDataPtr);
  . . . .
  ossFreePDU(world, myPduNum, DecodedDataPtr); /* free up PDU */

On the other hand, if you allocated your own output buffer using malloc() or calloc(), you should not use ossFreePDU() to free it. Instead, you should use another deallocating function (e.g., free()) to free this allocated memory. The code for this procedure typically looks like:

MyASN1DataType *DecodedDataPtr = NULL; /* address of decoded data */;
  . . . .
  DecodedDataPtr = (MyASN1DataType*)malloc(1024*sizeof(char));
  ossSetDecodingLength(world, 1024);
  rc = ossDecode(world, &myPduNum, &encodedData, (void **)&DecodedDataPtr);
  . . . .

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.

Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email:
Free Trial

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.

Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.