Commit Graph

234 Commits

Author SHA1 Message Date
André Hentschel 550f556dca ntdll: Remove unused macros. 2014-12-09 19:36:06 +01:00
Sebastian Lackner 1c1e7ed016 ntdll: Add support for ATL thunk 'POP ecx; POP eax; PUSH ecx; JMP 4(%eax)'. 2014-10-21 18:51:05 +09:00
Sebastian Lackner dcd2b0a366 ntdll: Add support for ATL thunk 'MOV this,ecx; MOV func,eax; JMP eax'. 2014-10-21 18:51:04 +09:00
Sebastian Lackner 40472cd3a7 ntdll: Add support for ATL thunk 'MOV this,edx; MOV func,ecx; JMP ecx'. 2014-10-21 18:51:02 +09:00
Sebastian Lackner aab0d25a49 ntdll: Add support for ATL thunk 'MOV this,ecx; JMP func'. 2014-10-21 18:50:59 +09:00
Sebastian Lackner 34b2d920b4 ntdll: Improve check_atl_thunk to prevent passing exceptions to the usermode application. 2014-10-15 11:52:06 +09:00
Sebastian Lackner 1c957ceb96 ntdll: Only check for ATL thunk if allowed by execute option flags.
Checking for ATL thunks can be disabled by setting MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION.
2014-10-13 18:31:26 +09:00
Sebastian Lackner 0cf3d78167 ntdll: Avoid recursive exception handler calls when handling guard pages.
The ATL check leads to problems when a page is protected with guard page protection.
raise_segv_exception is called with EXCEPTION_EXECUTE_FAULT. The ATL check tries to
read the memory, and triggers another exception handler. This time the virtual_handle_fault
check is executed, and removes the guard page protection. Afterwards, when the ATL
check returns, the exception is _not_ catched by virtual_handle_fault, but instead
passed to the application.
2014-10-13 18:31:06 +09:00
Francois Gouget 09ffb97fdd ntdll: Fix the compilation by using the right mcontext_t field names for the signal context on FreeBSD. 2014-07-24 19:24:41 +02:00
Alexandre Julliard 69d198a9eb ntdll: Use the standard mcontext_t type for the signal context on Android. 2014-07-23 21:24:18 +02:00
Alexandre Julliard 775263aa5c ntdll: Directly use ucontext_t instead of SIGCONTEXT on all platforms. 2014-07-23 19:07:00 +02:00
Alexandre Julliard 8d817997ce configure: Add a check for sys/ucontext.h and include it where appropriate. 2014-07-23 19:06:58 +02:00
Alexandre Julliard 1b1ea639cd ntdll: Use a custom signal restorer for Android.
Bionic doesn't provide one, even when vdso has been unmapped by the
preloader.
2014-07-17 14:51:12 +02:00
Austin English 1a988fa465 ntdll: Make sure flags are preserved in raise_trap_exception(). 2014-04-15 21:03:55 +02:00
André Hentschel 5865fe78de ntdll: Add signal definitions for GNU/Hurd.
Partially based on a patch by Andrew Nguyen.
2014-01-06 17:10:05 +01:00
Frédéric Delanoy 7e63200672 ntdll: Use BOOL type where appropriate. 2013-11-01 10:52:42 +01:00
Alexandre Julliard f8cdbecc25 ntdll: Add context definitions missing from the Android NDK. 2013-07-30 14:43:31 +02:00
Marcus Meissner fc179497bd kernel32: Use the correct pointer size in atl thunk (Coverity). 2013-02-18 10:31:22 +01:00
Alexandre Julliard 64ddb263d2 ntdll: Check for invalid %gs value in 32-bit code.
Suggested by Alessandro Pignotti.
2013-02-12 19:56:39 +01:00
Alexandre Julliard 99d89b347f ntdll: Add a helper function to check that a fault address lies in a known virtual memory view. 2013-02-12 19:56:19 +01:00
André Hentschel 1013d2e75c ntdll: Enhance FreeBSD checks to also check for DragonFly BSD when appropriate. 2012-06-04 12:17:54 +02:00
Austin English 132da2c428 ntdll: Give a better error message if signal context functions aren't defined. 2012-04-10 16:21:27 +02:00
Alexandre Julliard aa55603b73 ntdll: Move the _chkstk implementation to signal_i386.c. 2012-04-02 12:46:38 +02:00
Alexandre Julliard 62b7069fa9 ntdll: Unwind the stack before calling exit/abort_thread on i386 the same way we do on x86_64. 2011-10-19 16:38:52 +02:00
André Hentschel f73ee0a249 ntdll: Add check for DragonFly BSD. 2011-03-28 17:30:20 +02:00
Alexandre Julliard efbe695147 ntdll: Add a helper function for checking stack frame limits. 2011-02-01 12:38:58 +01:00
Alexandre Julliard 43682ce114 ntdll: Avoid copying and restoring the context in RtlCaptureContext for i386. 2011-02-01 12:38:58 +01:00
Alexandre Julliard c865b3f8e0 ntdll: Fix frame address check in RtlCaptureStackBackTrace to match what RtlUnwind does. 2011-01-31 14:30:26 +01:00
Austin English 9832bd6c54 ntdll: Add missing checks for FreeBSD_kernel. 2011-01-17 14:27:38 +01:00
Alexandre Julliard 085d398302 ntdll: Avoid using the CONTEXT86 type. 2010-10-20 18:37:07 +02:00
Alexandre Julliard 0db65fd36e ntdll: Fix the initial FPU control word on 32-bit too. 2010-06-22 11:19:02 +02:00
Henri Verbeet 772a5c7c09 ntdll: The FPU control word for newly created threads is 0x27f.
This fixes a regression introduced by
e6611e22fb.
2010-06-17 11:50:23 +02:00
Maarten Lankhorst 8734d5b9ac ntdll: Clear alignment flag in exception handlers. 2010-04-20 11:15:11 +02:00
Alexandre Julliard c09df80620 ntdll: Always restore the context after an exception even if setting the debug registers fails. 2010-03-05 12:25:34 +01:00
Alexandre Julliard 102dd9e92f winebuild: Rename __wine_call_from_32_regs for consistency with 64-bit. 2010-01-16 15:41:48 +01:00
Alexandre Julliard 82f393dda1 ntdll: Move the LDT locking functions to the i386-specific code. 2009-12-30 18:05:02 +01:00
Alexandre Julliard 16ddc62405 ntdll: Merge the thread data and thread regs structure, and make sure i386 regs are not available on other platforms. 2009-11-19 12:27:09 +01:00
Alexandre Julliard aced1b82ba ntdll: Move initialization of the debug registers to signal_i386.c. 2009-11-19 12:26:21 +01:00
Alexandre Julliard d4f1fffacc ntdll: Moved the TEB allocation routines to the platform-specific files. 2009-11-19 12:25:52 +01:00
Alexandre Julliard d90f691e58 ntdll: Implemented RtlCaptureStackBackTrace for i386. 2009-11-11 17:38:18 +01:00
Alexandre Julliard d45fca8f7c ntdll: Moved RtlCaptureStackBackTrace stub to the cpu-specific files. 2009-11-11 17:19:23 +01:00
Alexandre Julliard 44ed5c0423 ntdll: Use the exception code as exit status when no debugger is present. 2009-10-13 14:15:27 +02:00
Alexandre Julliard 9585bf6700 ntdll: Remap EXCEPTION_EXECUTE_FAULT only after the internal handlers have been run. 2009-09-23 14:20:17 +02:00
Alexandre Julliard 8101a2fa1e ntdll: Move the abort_thread() function to the CPU-specific files to allow redefining it. 2009-08-28 11:54:50 +02:00
Michael Karcher 9476071fd2 ntdll: Don't send EXCEPTION_EXECUTE_FAULT to Windows programs that didn't enable DEP. 2009-08-18 11:19:46 +02:00
Alexandre Julliard 0c46341543 ntdll: Add call frame annotations in x86 assembly code. 2009-06-25 12:05:09 +02:00
Alexandre Julliard 0610549529 ntdll: Move all thread exit processing to exit_thread(), and make RtlExitUserThread() CPU-specific. 2009-06-18 17:06:21 +02:00
Alexandre Julliard f124c7cc38 ntdll: Simplify the thread startup routine and make it CPU-specific. 2009-06-18 17:01:44 +02:00
Alexandre Julliard e65ebee63f ntdll: Add appropriate stdcall decorations to assembly functions. 2009-06-15 13:42:26 +02:00
Alexandre Julliard c5a57e7d13 ntdll: Move NtRaiseException and RtlUnwind implementations to the CPU-specific files. 2009-04-30 13:23:15 +02:00