MaxSystemInfoClass is now much larger than the size of the CallQS table: use the actual size of the table in range checks to prevent an overrun
Fixes CID 527, CID 528
svn path=/trunk/; revision=37616
Migrate ntoskrnl to PSEH 2.0. The code should speak for itself
modified ntoskrnl/ex/atom.c
_SEH_LEAVE was used improperly in NtQueryInformationAtom. As a free bonus, the upgrade to PSEH 2.0 (and to _SEH2_LEAVE) fixes the potential bug
modified ntoskrnl/fsrtl/fastio.c
Corrected exception filter logic
modified ntoskrnl/include/internal/ex.h
Goodbye _SEH_ExSystemExceptionFilter, you won't be missed
modified ntoskrnl/include/internal/ntoskrnl.h
Don't FORCEINLINE functions that use SEH, it's bad form and the compiler doesn't like
modified ntoskrnl/ke/i386/usercall.c
Dispatch the correct EXCEPTION_RECORD in case of exception inside KiInitializeUserApc
modified ntoskrnl/ke/powerpc/exp.c
Removed bogus, unused SEH code
modified ntoskrnl/ntoskrnl-generic.rbuild
Sources using PSEH 2.0 must be compiled with -fno-unit-at-a-time due to a GCC bug. See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17982 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054
Apparently, -fno-unit-at-a-time makes GCC crash when using precompiled headers. Disable precompiled headers for ntoskrnl
svn path=/trunk/; revision=37615
Implemented RPC exception handling macros with PSEH 2.0
modified base/services/rpcss/rpcss.rbuild
modified dll/win32/rpcrt4/rpcrt4.rbuild
RPC proxy stubs now depend on pseh. We should really add pseh as a link dependency automatically in rbuild, but, eh
modified tools/rbuild/backend/mingw/modulehandler.cpp
Compile RPC proxy stubs with -fno-unit-at-a-time due to a GCC bug. See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17982 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054
svn path=/trunk/; revision=37614
modified dll/win32/advapi32/advapi32.h
modified dll/win32/gdi32/include/precomp.h
modified dll/win32/setupapi/setupapi_private.h
Explicitly include pseh/pseh.h, don't rely on <windows.h> including it through <rpc.h>
svn path=/trunk/; revision=37612
- Mark a protocol in the menu only if it was read correctly. Otherwise the security protocol gets selected although the user is not able to see this protocol.
- Minor clean-up of the resource id mess.
svn path=/trunk/; revision=37586
Make SF_FramePointer field of _SEHFrame_t volatile, too, just to be safe
Unoptimized compilation doesn't perform const-folding - "static const" could result in compilation errors, use just "const"
Renamed _SEH2_GetExceptionPointers to _SEH2_GetExceptionInformation to be closer to the "standard" SEH syntax
modified lib/pseh/framebased-gcchack.c
Clobber the register that's actually used
svn path=/trunk/; revision=37570
- Fix an issue with choosing nonexistent x86 registers %sil/%dil, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153 for more details.
- Add "memory" to _InterlockedAddLargeStatistic(). "In Visual C++ 2005, this function behaves as a read-write barrier." -- MSDN library.
- Use "+m" instead of "=m".
See issue #3772 for more details.
svn path=/trunk/; revision=37543
- SETxx instructions require 8-bit operand, but "r" constraint is used. Use "q" instead ("r" means any general register, including esi and edi, which are not suitable as an operand of setnz.)
See issue #3772 for more details.
svn path=/trunk/; revision=37542