diff --git a/src/map_asn1.c b/src/map_asn1.c index 05f0ac86..cc52e7ae 100644 --- a/src/map_asn1.c +++ b/src/map_asn1.c @@ -1073,7 +1073,7 @@ ASN1Message_t *ASN1Message_from_message( enomem: if (allocated) - ASN_STRUCT_FREE(asn_DEF_ASN1Message, result); + free_ASN1Message(result); return NULL; } diff --git a/src/message_codec.c b/src/message_codec.c index ba8d6df5..372d6f09 100644 --- a/src/message_codec.c +++ b/src/message_codec.c @@ -98,7 +98,7 @@ PEP_STATUS PER_to_XER_ASN1Message_msg( the_end: free_growing_buf(dst); - ASN_STRUCT_FREE(asn_DEF_ASN1Message, msg); + free_ASN1Message(msg); return status; } @@ -135,7 +135,13 @@ PEP_STATUS XER_to_PER_ASN1Message_msg( *size = (size_t) _size; the_end: - ASN_STRUCT_FREE(asn_DEF_ASN1Message, msg); + free_ASN1Message(msg); return status; } +DYNAMIC_API void free_ASN1Message( + ASN1Message_t *msg + ) +{ + ASN_STRUCT_FREE(asn_DEF_ASN1Message, msg); +} diff --git a/src/message_codec.h b/src/message_codec.h index 059e9088..d9868df9 100644 --- a/src/message_codec.h +++ b/src/message_codec.h @@ -96,6 +96,19 @@ DYNAMIC_API PEP_STATUS XER_to_PER_ASN1Message_msg( ); +/** + * + * + * @brief De-allocate the pointed ASN1 message which must have been + * heap-allocated. + * + * @param[in] msg Pointer to the message to destroy. + */ +DYNAMIC_API void free_ASN1Message( + ASN1Message_t *msg + ); + + #ifdef __cplusplus } #endif diff --git a/test/src/MapAsn1Test.cc b/test/src/MapAsn1Test.cc index 314a03bf..1ba93655 100644 --- a/test/src/MapAsn1Test.cc +++ b/test/src/MapAsn1Test.cc @@ -194,8 +194,8 @@ TEST_F(MapAsn1Test, check_map_asn1_message) { ASSERT_STREQ(msg2->opt_fields->next->value->value, "othervalue"); ASSERT_STREQ(msg2->_sender_fpr, "2342234223422342"); - ASN_STRUCT_FREE(asn_DEF_ASN1Message, pm); - ASN_STRUCT_FREE(asn_DEF_ASN1Message, pm2); + free_ASN1Message(pm); + free_ASN1Message(pm2); free_message(msg); free_message(msg2); free(data);