From 02abb69cb206ab37a08c98e5015e2a801e29ea0b Mon Sep 17 00:00:00 2001 From: pan-wang Date: Sat, 10 Mar 2018 09:50:48 -0800 Subject: [PATCH] fix missing reference/dereference handler (#651) --- .../outofprocess/forwardinghandler.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/RequestHandler/outofprocess/forwardinghandler.cpp b/src/RequestHandler/outofprocess/forwardinghandler.cpp index 3750fbf8de..d927c389ea 100644 --- a/src/RequestHandler/outofprocess/forwardinghandler.cpp +++ b/src/RequestHandler/outofprocess/forwardinghandler.cpp @@ -97,6 +97,12 @@ FORWARDING_HANDLER::OnExecuteRequestHandler() STACK_STRU(strUrl, 2048); STACK_STRU(struEscapedUrl, 2048); + // + // Take a reference so that object does not go away as a result of + // async completion. + // + ReferenceRequestHandler(); + // override Protocol related config from aspNetCore config pProtocol->OverrideConfig(m_pApplication->QueryConfig()); @@ -354,6 +360,12 @@ Finished: ReleaseSRWLockShared(&m_RequestLock); DBG_ASSERT(TlsGetValue(g_dwTlsIndex) == NULL); } + + DereferenceRequestHandler(); + // + // Do not use this object after dereferencing it, it may be gone. + // + return retVal; }