summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Sohns <eriksohns@fastmail.net>2015-12-02 14:53:29 +0100
committerErik Sohns <eriksohns@fastmail.net>2015-12-02 14:53:29 +0100
commitde13b795434877ad71f77a74180c2a01141083b2 (patch)
tree72dad2c21032dc861fb46fd4209da8211388c075
parentaeb68c0179483af8fb44fedf88c94549aaff3210 (diff)
downloadATCD-de13b795434877ad71f77a74180c2a01141083b2.tar.gz
fix potential memory leak when using the Win32 Proactor (part1)
-rw-r--r--ACE/ace/WIN32_Proactor.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ACE/ace/WIN32_Proactor.cpp b/ACE/ace/WIN32_Proactor.cpp
index 25bf4f31b32..c593398cc26 100644
--- a/ACE/ace/WIN32_Proactor.cpp
+++ b/ACE/ace/WIN32_Proactor.cpp
@@ -636,6 +636,12 @@ ACE_WIN32_Proactor::application_specific_code (ACE_WIN32_Asynch_Result *asynch_r
const void *completion_key,
u_long error)
{
+ // *NOTE*: on Win32 with MSVC (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS set), this
+ // needs to be compiled with '/EHa' to work properly, otherwise
+ // 'finally' is skipped, leaking memory
+ // *TODO*: the default (auto-)generated MPC MSVC project files do not enforce
+ // this (uses '/EHsc', see $MPC_ROOT/templates/nmakedll.mpt:36)
+ // *WORKAROUND*: #undef(ine) ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS in config.h
ACE_SEH_TRY
{
// Call completion hook