Hi, I have used IBM purify to check my test program which invokes openssl library. There are some memory leaks reported by Purify, please see below. Could somebody point to me from which function those leaks were generated, and how to avoid those leaks? Thanks, Bob
MLK: 1104 bytes leaked in 46 blocks This memory was allocated from: malloc [rtlib.o] CRYPTO_malloc [libcrypto.so.1.0.0] ASN1_STRING_type_new [libcrypto.so.1.0.0] ASN1_primitive_new [libcrypto.so.1.0.0] asn1_item_ex_combine_new [libcrypto.so.1.0.0] asn1_item_ex_combine_new [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] Block of 24 bytes (46 times); last block at 0x2aaaac0f7218 MLK: 836 bytes leaked in 2 blocks This memory was allocated from: malloc [rtlib.o] CRYPTO_malloc [libcrypto.so.1.0.0] asn1_enc_save [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] asn1_template_ex_d2i [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] ASN1_item_d2i [libcrypto.so.1.0.0] Block of 432 bytes at 0x2aaaac093668 Block of 404 bytes at 0x2aaaac009d58 MLK: 800 bytes leaked in 20 blocks This memory was allocated from: malloc [rtlib.o] CRYPTO_malloc [libcrypto.so.1.0.0] ASN1_OBJECT_new [libcrypto.so.1.0.0] c2i_ASN1_OBJECT [libcrypto.so.1.0.0] asn1_ex_c2i [libcrypto.so.1.0.0] asn1_d2i_ex_primitive [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] Block of 40 bytes (20 times); last block at 0x2aaaac097a78 MLK: 600 bytes leaked in 15 blocks This memory was allocated from: malloc [rtlib.o] CRYPTO_malloc [libcrypto.so.1.0.0] asn1_item_ex_combine_new [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] asn1_template_ex_d2i [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] Block of 40 bytes (15 times); last block at 0x2aaaac0f6e98 MLK: 376 bytes leaked in 33 blocks This memory was allocated from: malloc [rtlib.o] CRYPTO_malloc [libcrypto.so.1.0.0] ASN1_STRING_set [libcrypto.so.1.0.0] asn1_ex_c2i [libcrypto.so.1.0.0] asn1_d2i_ex_primitive [libcrypto.so.1.0.0] ASN1_item_ex_d2i [libcrypto.so.1.0.0] asn1_template_noexp_d2i [libcrypto.so.1.0.0] asn1_template_ex_d2i [libcrypto.so.1.0.0] Block of 14 bytes (21 times); last block at 0x2aaaac0f7168 Block of 12 bytes (2 times); last block at 0x2aaaac096828 Block of 11 bytes (2 times); last block at 0x2aaaac096338 Block of 5 bytes (6 times); last block at 0x2aaaac0976f8 Block of 3 bytes (2 times); last block at 0x2aaaac095e58 . . .