summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/amqp.cmake
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2016-06-22 20:41:43 +0000
committerAlan Conway <aconway@apache.org>2016-06-22 20:41:43 +0000
commitc3c3bc4016270dd75b4c6a1e6831408cd4a5d055 (patch)
treec6acf024eb57f9360ef50055bfbf3ce0fbd1b2d9 /qpid/cpp/src/amqp.cmake
parent7ab8ebde50308f76428359c0120473c4d491b55a (diff)
downloadqpid-python-c3c3bc4016270dd75b4c6a1e6831408cd4a5d055.tar.gz
QPID-7306: Memory management error in Link/Bridge
qpid::broker Link and Bridge use Connection::requestIOProcessing() to register callbacks in the connection thread. They were binding a plain "this" pointer to the callback, but the classes are managed by boost::shared_ptr so if all the shared_ptr were released, the callback could happen on a dangling pointer. This fix uses boost::weak_ptr in the callbacks, so if all shared_ptr instances are released, we don't use the dead pointer. Link::destroy cannot be skipped, so use a shared_ptr for that. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749780 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/amqp.cmake')
0 files changed, 0 insertions, 0 deletions