client: prevent escape of internal refs

This commit is contained in:
Michael Davidsaver
2017-06-20 11:20:48 +02:00
parent c53787f9bd
commit dc87ee0e31
2 changed files with 4 additions and 4 deletions

View File

@@ -3327,7 +3327,7 @@ private:
virtual ChannelProvider::shared_pointer getProvider()
{
return m_context;
return m_context->external_from_this();
}
// NOTE: synchronization guarantees that <code>transport</code> is non-<code>0</code> and <code>state == CONNECTED</code>.
@@ -3377,8 +3377,8 @@ private:
return m_channelID;
}
public:
virtual ClientContextImpl::shared_pointer getContext() {
return m_context;
virtual ClientContextImpl* getContext() {
return m_context.get();
}
virtual pvAccessID getSearchInstanceID() {

View File

@@ -47,7 +47,7 @@ public:
virtual void destroyChannel(bool force) = 0;
virtual void connectionCompleted(pvAccessID sid/*, rights*/) = 0;
virtual void createChannelFailed() = 0;
virtual std::tr1::shared_ptr<ClientContextImpl> getContext() = 0;
virtual ClientContextImpl* getContext() = 0;
virtual void channelDestroyedOnServer() = 0;
virtual pvAccessID getServerChannelID() = 0;