From bd1054f247c65579f7add148622caf3e2de2b8e7 Mon Sep 17 00:00:00 2001 From: mrkraimer Date: Sat, 6 Mar 2021 14:14:39 -0500 Subject: [PATCH] Changes were to check for null pointer after calling lock on a weak pointer. --- src/pvAccess/channelLocal.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pvAccess/channelLocal.cpp b/src/pvAccess/channelLocal.cpp index 947d339..99acb7b 100644 --- a/src/pvAccess/channelLocal.cpp +++ b/src/pvAccess/channelLocal.cpp @@ -520,6 +520,7 @@ void ChannelPutLocal::put( ChannelPutRequester::shared_pointer requester = channelPutRequester.lock(); if(!requester) return; ChannelLocalPtr channel(channelLocal.lock()); + if(!channel) throw std::logic_error("channel is deleted"); if(!channel->canWrite()) { Status status = Status::error("Channel put is not allowed"); requester->putDone(status,getPtrSelf()); @@ -687,6 +688,7 @@ void ChannelPutGetLocal::putGet( ChannelPutGetRequester::shared_pointer requester = channelPutGetRequester.lock(); if(!requester) return; ChannelLocalPtr channel(channelLocal.lock()); + if(!channel) throw std::logic_error("channel is deleted"); if(!channel->canWrite()) { Status status = Status::error("Channel putGet is not allowed"); requester->putGetDone(status,getPtrSelf(),pvGetStructure,getBitSet);