[ https://issues.apache.org/jira/browse/AMQCPP-622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Laügt updated AMQCPP-622: -------------------------------- Description: ActiveMQ transport has two memory leaks in the handshake of a OpenSSL connection. {noformat} ==15167== Memcheck, a memory error detector ==15167== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==15167== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==15167== ==15167== ==15167== HEAP SUMMARY: ==15167== in use at exit: 4,682,917 bytes in 8,351 blocks ==15167== total heap usage: 108,257 allocs, 99,907 frees, 64,602,948 bytes allocated ==15167== ==15167== 207 (32 direct, 175 indirect) bytes in 1 blocks are definitely lost in loss record 2,149 of 2,859 ==15167== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) ==15167== by 0x6E3FEBE: sk_new (stack.c:162) ==15167== by 0x6E93024: X509V3_add_value (v3_utl.c:93) ==15167== by 0x6E94BD8: i2v_GENERAL_NAME (v3_alt.c:142) ==15167== by 0x6E94D2A: i2v_GENERAL_NAMES (v3_alt.c:106) ==15167== by 0x19B5FF6E: decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string const&) (OpenSSLSocket.cpp:671) ==15167== by 0x19B61481: decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() (OpenSSLSocket.cpp:379) ==15167== by 0x19B5FA95: decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char const*, int, int, int) (OpenSSLSocket.cpp:566) ==15167== by 0x19B63520: decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned char const*, int) (OutputStream.cpp:89) ==15167== by 0x19BB1255: decaf::io::OutputStream::write(unsigned char const*, int) (OutputStream.cpp:65) ==15167== ==15167== 228 (32 direct, 196 indirect) bytes in 1 blocks are definitely lost in loss record 2,153 of 2,859 ==15167== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) ==15167== by 0x6E3FEBE: sk_new (stack.c:162) ==15167== by 0x6E6ED08: asn1_template_noexp_d2i (tasn_dec.c:634) ==15167== by 0x6E6EE34: asn1_template_ex_d2i (tasn_dec.c:584) ==15167== by 0x6E6E4A5: ASN1_item_ex_d2i (tasn_dec.c:206) ==15167== by 0x6E6E983: ASN1_item_d2i (tasn_dec.c:146) ==15167== by 0x19B5FF4C: decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string const&) (OpenSSLSocket.cpp:671) ==15167== by 0x19B61481: decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() (OpenSSLSocket.cpp:379) ==15167== by 0x19B5FA95: decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char const*, int, int, int) (OpenSSLSocket.cpp:566) ==15167== by 0x19B63520: decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned char const*, int) (OutputStream.cpp:89) ==15167== ==15167== LEAK SUMMARY: ==15167== definitely lost: 64 bytes in 2 blocks ==15167== indirectly lost: 371 bytes in 20 blocks ==15167== possibly lost: 176,608 bytes in 28 blocks ==15167== still reachable: 2,705,672 bytes in 6,620 blocks ==15167== suppressed: 1,800,202 bytes in 1,681 blocks ==15167== Reachable blocks (those to which a pointer was found) are not shown. ==15167== To see them, rerun with: --leak-check=full --show-leak-kinds=all {noformat} was: ActiveMQ transport has two memory leaks in the handshake of a OpenSSL connection. {noformat} ==15167== Memcheck, a memory error detector ==15167== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==15167== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==15167== Command: python -m robot.run --variable KW_TIMEOUT:180 --suite Robot.Test.Module.Price\ Manager.Money\ Market\ Fund . ==15167== Parent PID: 25643 ==15167== ==15167== ==15167== HEAP SUMMARY: ==15167== in use at exit: 4,682,917 bytes in 8,351 blocks ==15167== total heap usage: 108,257 allocs, 99,907 frees, 64,602,948 bytes allocated ==15167== ==15167== 207 (32 direct, 175 indirect) bytes in 1 blocks are definitely lost in loss record 2,149 of 2,859 ==15167== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) ==15167== by 0x6E3FEBE: sk_new (stack.c:162) ==15167== by 0x6E93024: X509V3_add_value (v3_utl.c:93) ==15167== by 0x6E94BD8: i2v_GENERAL_NAME (v3_alt.c:142) ==15167== by 0x6E94D2A: i2v_GENERAL_NAMES (v3_alt.c:106) ==15167== by 0x19B5FF6E: decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string const&) (OpenSSLSocket.cpp:671) ==15167== by 0x19B61481: decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() (OpenSSLSocket.cpp:379) ==15167== by 0x19B5FA95: decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char const*, int, int, int) (OpenSSLSocket.cpp:566) ==15167== by 0x19B63520: decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned char const*, int) (OutputStream.cpp:89) ==15167== by 0x19BB1255: decaf::io::OutputStream::write(unsigned char const*, int) (OutputStream.cpp:65) ==15167== ==15167== 228 (32 direct, 196 indirect) bytes in 1 blocks are definitely lost in loss record 2,153 of 2,859 ==15167== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) ==15167== by 0x6E3FEBE: sk_new (stack.c:162) ==15167== by 0x6E6ED08: asn1_template_noexp_d2i (tasn_dec.c:634) ==15167== by 0x6E6EE34: asn1_template_ex_d2i (tasn_dec.c:584) ==15167== by 0x6E6E4A5: ASN1_item_ex_d2i (tasn_dec.c:206) ==15167== by 0x6E6E983: ASN1_item_d2i (tasn_dec.c:146) ==15167== by 0x19B5FF4C: decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string const&) (OpenSSLSocket.cpp:671) ==15167== by 0x19B61481: decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() (OpenSSLSocket.cpp:379) ==15167== by 0x19B5FA95: decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char const*, int, int, int) (OpenSSLSocket.cpp:566) ==15167== by 0x19B63520: decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned char const*, int) (OutputStream.cpp:89) ==15167== ==15167== LEAK SUMMARY: ==15167== definitely lost: 64 bytes in 2 blocks ==15167== indirectly lost: 371 bytes in 20 blocks ==15167== possibly lost: 176,608 bytes in 28 blocks ==15167== still reachable: 2,705,672 bytes in 6,620 blocks ==15167== suppressed: 1,800,202 bytes in 1,681 blocks ==15167== Reachable blocks (those to which a pointer was found) are not shown. ==15167== To see them, rerun with: --leak-check=full --show-leak-kinds=all {noformat} > Memory leaks in the handshake of a OpenSSL connection > ----------------------------------------------------- > > Key: AMQCPP-622 > URL: https://issues.apache.org/jira/browse/AMQCPP-622 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf > Affects Versions: 3.9.4 > Reporter: Daniel Laügt > Assignee: Timothy Bish > Priority: Minor > Attachments: OpenSSLSocket.cpp.patch > > > ActiveMQ transport has two memory leaks in the handshake of a OpenSSL > connection. > {noformat} > ==15167== Memcheck, a memory error detector > ==15167== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. > ==15167== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright > info > ==15167== > ==15167== > ==15167== HEAP SUMMARY: > ==15167== in use at exit: 4,682,917 bytes in 8,351 blocks > ==15167== total heap usage: 108,257 allocs, 99,907 frees, 64,602,948 bytes > allocated > ==15167== > ==15167== 207 (32 direct, 175 indirect) bytes in 1 blocks are definitely lost > in loss record 2,149 of 2,859 > ==15167== at 0x4C2AB80: malloc (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) > ==15167== by 0x6E3FEBE: sk_new (stack.c:162) > ==15167== by 0x6E93024: X509V3_add_value (v3_utl.c:93) > ==15167== by 0x6E94BD8: i2v_GENERAL_NAME (v3_alt.c:142) > ==15167== by 0x6E94D2A: i2v_GENERAL_NAMES (v3_alt.c:106) > ==15167== by 0x19B5FF6E: > decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string > const&) (OpenSSLSocket.cpp:671) > ==15167== by 0x19B61481: > decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() > (OpenSSLSocket.cpp:379) > ==15167== by 0x19B5FA95: > decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char > const*, int, int, int) (OpenSSLSocket.cpp:566) > ==15167== by 0x19B63520: > decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned > char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) > ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned > char const*, int) (OutputStream.cpp:89) > ==15167== by 0x19BB1255: decaf::io::OutputStream::write(unsigned char > const*, int) (OutputStream.cpp:65) > ==15167== > ==15167== 228 (32 direct, 196 indirect) bytes in 1 blocks are definitely lost > in loss record 2,153 of 2,859 > ==15167== at 0x4C2AB80: malloc (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==15167== by 0x6D8DA67: CRYPTO_malloc (mem.c:346) > ==15167== by 0x6E3FEBE: sk_new (stack.c:162) > ==15167== by 0x6E6ED08: asn1_template_noexp_d2i (tasn_dec.c:634) > ==15167== by 0x6E6EE34: asn1_template_ex_d2i (tasn_dec.c:584) > ==15167== by 0x6E6E4A5: ASN1_item_ex_d2i (tasn_dec.c:206) > ==15167== by 0x6E6E983: ASN1_item_d2i (tasn_dec.c:146) > ==15167== by 0x19B5FF4C: > decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(std::string > const&) (OpenSSLSocket.cpp:671) > ==15167== by 0x19B61481: > decaf::internal::net::ssl::openssl::OpenSSLSocket::startHandshake() > (OpenSSLSocket.cpp:379) > ==15167== by 0x19B5FA95: > decaf::internal::net::ssl::openssl::OpenSSLSocket::write(unsigned char > const*, int, int, int) (OpenSSLSocket.cpp:566) > ==15167== by 0x19B63520: > decaf::internal::net::ssl::openssl::OpenSSLSocketOutputStream::doWriteArrayBounded(unsigned > char const*, int, int, int) (OpenSSLSocketOutputStream.cpp:91) > ==15167== by 0x19BB14D1: decaf::io::OutputStream::doWriteArray(unsigned > char const*, int) (OutputStream.cpp:89) > ==15167== > ==15167== LEAK SUMMARY: > ==15167== definitely lost: 64 bytes in 2 blocks > ==15167== indirectly lost: 371 bytes in 20 blocks > ==15167== possibly lost: 176,608 bytes in 28 blocks > ==15167== still reachable: 2,705,672 bytes in 6,620 blocks > ==15167== suppressed: 1,800,202 bytes in 1,681 blocks > ==15167== Reachable blocks (those to which a pointer was found) are not shown. > ==15167== To see them, rerun with: --leak-check=full --show-leak-kinds=all > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)