From e97b634c4cd72b66f61c216f6b5d8d0adf1254fd Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 28 Jul 2007 00:16:55 +0000 Subject: [PATCH] stop after at most 200 iterations in WalkFrom() to avoid looping endlessly when the stack is corrupted (patch 1759239) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@47767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/stackwalk.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/msw/stackwalk.cpp b/src/msw/stackwalk.cpp index d0f9e59749..35f37b06bf 100644 --- a/src/msw/stackwalk.cpp +++ b/src/msw/stackwalk.cpp @@ -266,8 +266,9 @@ void wxStackWalker::WalkFrom(const CONTEXT *pCtx, size_t skip) #error "Need to initialize STACKFRAME on non x86" #endif // _M_IX86 - // iterate over all stack frames - for ( size_t nLevel = 0; ; nLevel++ ) + // iterate over all stack frames (but stop after 200 to avoid entering + // infinite loop if the stack is corrupted) + for ( size_t nLevel = 0; nLevel < 200; nLevel++ ) { // get the next stack frame if ( !wxDbgHelpDLL::StackWalk