diff options
| author | Gordon Sim <gsim@apache.org> | 2010-03-19 17:04:18 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2010-03-19 17:04:18 +0000 |
| commit | fe703fd7a9d1ae401bdf378def92ae2925a91fbc (patch) | |
| tree | 285eebffee4dd1252abde2dd39872531565987d3 /cpp/src/tests/qpid_recv.cpp | |
| parent | fe81d465643f4b1f47511788edbbc64bf60085f1 (diff) | |
| download | qpid-python-fe703fd7a9d1ae401bdf378def92ae2925a91fbc.tar.gz | |
QPID-664: Prevent dangling pointers when receiver/sender handles stay in scope after connection/session handles goes out of scope. This change require connections to be closed explicitly to avoid leaking memory.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@925332 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/qpid_recv.cpp')
| -rw-r--r-- | cpp/src/tests/qpid_recv.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/cpp/src/tests/qpid_recv.cpp b/cpp/src/tests/qpid_recv.cpp index e4cc6a7ac8..10738578ed 100644 --- a/cpp/src/tests/qpid_recv.cpp +++ b/cpp/src/tests/qpid_recv.cpp @@ -148,8 +148,8 @@ int main(int argc, char ** argv) { Options opts; if (opts.parse(argc, argv)) { + Connection connection(opts.connectionOptions); try { - Connection connection(opts.connectionOptions); connection.open(opts.url); std::auto_ptr<FailoverUpdates> updates(opts.failoverUpdates ? new FailoverUpdates(connection) : 0); Session session = connection.newSession(opts.tx > 0); @@ -207,6 +207,7 @@ int main(int argc, char ** argv) return 0; } catch(const std::exception& error) { std::cerr << "Failure: " << error.what() << std::endl; + connection.close(); } } return 1; |
