[ https://issues.apache.org/jira/browse/GEODE-2713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941222#comment-15941222 ]
ASF GitHub Bot commented on GEODE-2713: --------------------------------------- Github user pivotal-jbarrett commented on a diff in the pull request: https://github.com/apache/geode-native/pull/74#discussion_r108006150 --- Diff: src/cppcache/src/ThinClientPoolDM.hpp --- @@ -463,7 +463,8 @@ class FunctionExecution : public PooledWork<GfErrType> { void setParameters(const char* func, uint8_t getResult, uint32_t timeout, CacheablePtr args, TcrEndpoint* ep, - ThinClientPoolDM* poolDM, ACE_Recursive_Thread_Mutex* rCL, + ThinClientPoolDM* poolDM, + std::shared_ptr<ACE_Recursive_Thread_Mutex> rCL, --- End diff -- Why not `const std::shared_ptr<ACE_Recursive_Thread_Mutex>& rCL`? > Function execution can lead to passing the address of a stack variable > ---------------------------------------------------------------------- > > Key: GEODE-2713 > URL: https://issues.apache.org/jira/browse/GEODE-2713 > Project: Geode > Issue Type: Bug > Components: native client > Reporter: Michael Dodge > > In ThinClientRegion::executeFunctionSH(), the address of a stack variable > (the result collector lock) is passed to the workers. If an exception occurs > with any of the workers, the function will return, causing the stack variable > to be destructed. Since the workers have the raw address, it is now a > dangling pointer situation. -- This message was sent by Atlassian JIRA (v6.3.15#6346)