我有一個應用程序必須計算文件的MD5,我有 使用openssl庫,valgrind抱怨一些塊仍然 可達。openssl/valgrind
編譯下面的代碼:
#include <openssl/bio.h>
int main(int, char**)
{
BIO * mem = BIO_new(BIO_s_mem());
BIO_vfree(mem);
return 0;
}
使用的valgrind它這是我獲得的運行:
==23597== 220 bytes in 6 blocks are still reachable in loss record 1 of 1
==23597== at 0x4022D78: malloc (vg_replace_malloc.c:207)
==23597== by 0x432FD0D: (within /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x433036E: CRYPTO_malloc (in /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x43989C9: lh_new (in /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x4332025: (within /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x433249B: (within /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x4332B5D: CRYPTO_new_ex_data (in /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x438E053: BIO_set (in /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x438E0E9: BIO_new (in /usr/lib/i686/cmov/libcrypto.so.0.9.8)
==23597== by 0x80485E1: main (in /home/kalman/cxx_test/md5test/a.out)
人有同樣的經歷?
作爲當你不使用-DPURIFY發生什麼事的例子,看到http://www.metasploit.com/users/hdm/tools/debian-openssl/(我並不是說沒有運行valgrind就沒有直接導致錯誤,但它確實會導致人們採取最終導致錯誤的行動)。 :-P – 2009-01-23 14:11:48