You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd noticed s_channelNameToProvider before, I hadn't noticed that it is static. So in addition to not being guarded from concurrent access, it allows cross-talk between separate servers operating within the same process (aka a gateway).
I also missed a third problem, that this code was using ServerSearchHandler::s_channelNameToProvider[channelName].lock() w/o considering that operator[] implicitly insert()s when name doesn't exist. In this case a NULL weak_ptr. An that lock() returns NULL instead of throwing. So attempting to createChannel() for a name which never had a successful search would crash was well.
I'd noticed s_channelNameToProvider before, I hadn't noticed that it is
static
. So in addition to not being guarded from concurrent access, it allows cross-talk between separate servers operating within the same process (aka a gateway).pvAccessCPP/src/server/pv/responseHandlers.h
Lines 120 to 121 in 3b565d0
The text was updated successfully, but these errors were encountered: