[ros-diffs] [tkreuzer] 47066: [NTOSKRNL] - Fix RtlWalkFrameChain to do usermode back traces for threads that are not system threads. Also use _SEH2_YIELD when leaving the SEH block.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat May 1 00:47:46 CEST 2010


Author: tkreuzer
Date: Sat May  1 00:47:44 2010
New Revision: 47066

URL: http://svn.reactos.org/svn/reactos?rev=47066&view=rev
Log:
[NTOSKRNL]
- Fix RtlWalkFrameChain to do usermode back traces for threads that are not system threads. Also use _SEH2_YIELD when leaving the SEH block.

Modified:
    trunk/reactos/ntoskrnl/rtl/libsupp.c

Modified: trunk/reactos/ntoskrnl/rtl/libsupp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/rtl/libsupp.c?rev=47066&r1=47065&r2=47066&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/rtl/libsupp.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/rtl/libsupp.c [iso-8859-1] Sat May  1 00:47:44 2010
@@ -317,7 +317,7 @@
                                         &StackBegin,
                                         &StackEnd);
         if (!Result) return 0;
-    }
+        }
 
     /* Use a SEH block for maximum protection */
     _SEH2_TRY
@@ -331,12 +331,11 @@
 
             /* Make sure we can trust the TEB and trap frame */
             if (!(Teb) ||
-                !(Thread->SystemThread) ||
                 (KeIsAttachedProcess()) ||
                 (KeGetCurrentIrql() >= DISPATCH_LEVEL))
             {
                 /* Invalid or unsafe attempt to get the stack */
-                return 0;
+                _SEH2_YIELD(return 0;)
             }
 
             /* Get the stack limits */




More information about the Ros-diffs mailing list