Commit graph

93 commits

Author SHA1 Message Date
Alexandre Julliard
322b5334a8 server: Add a helper to append data to a buffer. 2024-09-11 22:51:45 +02:00
Brendan Shanks
9b4e3718ed server: Replace sprintf with snprintf to avoid deprecation warnings on macOS. 2024-03-28 19:51:35 +01:00
Alexandre Julliard
411592bf45 configure: Assume that sys/wait.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Rémi Bernon
75bccf99d1 server: Remove dr7 PTRACE_POKEUSER workaround.
It is needed for Linux Kernel version 4.18, and has been fixed in 4.19.

Also see https://bugzilla.kernel.org/show_bug.cgi?id=200965 for a more
detailed description of the regression and the fix.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46472
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:24:46 +02:00
Rémi Bernon
4db8cdc267 server: Clear dr7 before setting other registers.
Resetting their length to make sure we pass alignment checks both for
their current values and for the new values we'll write.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46472
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:24:42 +02:00
Alexandre Julliard
c954e5b9e6 server: Avoid using wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Paul Gofman
385142bb9e server: Check for system regs before suspending for ptrace.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-26 21:30:30 +02:00
Alexandre Julliard
308bd35746 server: Store a machine ID instead of a CPU in the context structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-27 10:40:53 +02:00
Torge Matthies
102a0b189b server: Fix page size calculation in write access check.
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-25 08:57:59 +01:00
Jacek Caban
80ceafc2a1 server: Don't change cached thread context in set_thread_context.
Let the caller take care of that.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 16:47:41 +02:00
Alexandre Julliard
53375be47c server: Reset hardware breakpoint sizes before setting them.
Workaround for kernel bug 200965.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-18 17:18:09 +01:00
Frédéric Fauberteau
708a2c991f wineserver: Support debug registers on NetBSD.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46229
Signed-off-by: Frédéric Fauberteau <triaxx@NetBSD.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 16:13:11 +01:00
Matteo Bruni
1f006f075d server: Avoid writing out of bounds in get_selector_entry().
Fixes c6dfce2723.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-16 19:19:43 +01:00
Zebediah Figura
c6dfce2723 server: Fix pointer arithmetic in get_selector_entry().
The selector table is exclusively 32-bit, so trying to get selector entries
with a 64-bit wineserver will return the wrong values due to the different
size of (long *).

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-12 11:09:48 +01:00
Alexandre Julliard
abe0b1c57b server: Initialize debug registers in new threads if necessary.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-27 17:04:04 +02:00
Alexandre Julliard
9a07d210f1 server: Add a platform-specific entry point to initialize registers of a new thread.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-27 17:04:04 +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
Francois Gouget
d3cc10724e server: Include either sys/user.h or asm/user.h.
This avoids redefinitions with old Linux kernel headers.
2013-10-07 14:44:34 +02:00
Huw Davies
2a32d5765a server: Android has struct user in asm/user.h. 2013-09-24 18:58:24 +02:00
Dmitry Timoshkov
bfe3b3bdb6 server: Set error to STATUS_PROCESS_IS_TERMINATING if the process is terminating. 2013-05-08 12:44:46 +02:00
Alexandre Julliard
fc7e81be15 server: Don't support debug registers in ptrace if sys/user.h is missing. 2013-02-13 17:19:42 +01:00
Alexandre Julliard
2b95df8fbd server: Use the __NR_ names for Linux system calls. 2013-01-21 21:37:10 +01:00
Alexandre Julliard
1fd55b7334 server: Get rid of the waitpid wrapper. 2012-09-24 22:27:30 +02:00
Adrian Bunk
9d5c178b24 server: Use waitpid() instead of wait4(). 2012-09-24 22:27:30 +02:00
André Hentschel
89e462b141 server: Add checks for DragonFly BSD. 2012-05-29 10:46:34 +02:00
Henri Verbeet
e7728c4132 server: Try writing to /proc/<pid>/mem in write_process_memory(). 2011-09-22 09:36:29 +02:00
Grazvydas Ignotas
2cc56f379c server: Set debug enable bits briefly to commit the addresses to kernel. 2011-07-18 16:23:30 +02:00
Grazvydas Ignotas
fa179b1c26 server: Set RW and LEN bits of DR7 before setting DR0-DR3. 2011-07-18 16:23:30 +02:00
Austin English
599afa06b7 server: Add missing checks for FreeBSD_kernel. 2011-01-17 14:26:24 +01:00
Alexandre Julliard
185f637080 server: Use the tgkill system call on all Linux platforms. 2010-12-27 12:07:16 +01:00
Alexandre Julliard
10b6d6ba4d server: Use tgkill to send signals on x86_64 too. 2010-07-28 16:28:26 +02:00
Michael Stefaniuc
5c8b44cd24 server: Simplify tkill() and remove unreachable code (Smatch). 2010-07-28 16:28:23 +02:00
Maarten Lankhorst
c054b5f86d wineserver: Use syscall instead of int $0x80. 2010-07-22 10:24:45 +02:00
Alexandre Julliard
1a79912a10 server: Try to use /proc/pid/mem to read process memory since it should be faster. 2010-07-21 13:23:58 +02:00
Eric Pouech
1298f2233f server: Fix write_process_memory on Wow64. 2010-04-20 11:17:03 +02:00
Eric Pouech
9f49c6a05f server: Correctly set the DR0..7 registers on Linux for x86_64 architecture. 2010-04-08 12:28:25 +02:00
Alexandre Julliard
034c6c3e58 server: The ptrace interfaces uses longs, not ints. 2009-06-18 15:17:26 +02:00
Alexandre Julliard
5316dd011f server: Define a generic context structure instead of using the platform-specific version. 2009-04-08 19:59:23 +02:00
Alexandre Julliard
2cf868c0be server: Move ldt_copy to the init_process_done request and make it a client_ptr_t. 2008-12-31 15:09:59 +01:00
Alexandre Julliard
8e9c156e14 server: Make the address argument for read/write_process_memory a client_ptr_t. 2008-12-30 14:11:58 +01:00
Tijl Coosemans
0c4f152ec7 server: Use thr_kill2 syscall to signal threads on FreeBSD. 2007-08-23 20:19:09 +02:00
Tijl Coosemans
60833da9f2 loader: Use thr_self syscall to get thread id on FreeBSD. 2007-08-09 15:01:04 +02:00
Andrew Talbot
b1788c8462 server: Replace inline static with static inline. 2007-03-17 20:05:05 +01:00
Alexandre Julliard
ae4ecb6c64 server: Print a trace when sending a signal to a thread. 2007-01-18 12:23:29 +01:00
Alexandre Julliard
c273498ef4 server: Implement process control using Mach primitives for Mac OS.
With help from Ken Thomases.
2006-12-29 20:38:49 +01:00
Alexandre Julliard
cd1c7fc056 server: Add hooks to support process tracing mechanisms other than ptrace. 2006-12-29 16:56:11 +01:00
Alexandre Julliard
48b74b3237 server: Split get_thread_from_pid to allow lookups by tid or pid only. 2006-12-29 16:53:33 +01:00
Eric Pouech
5b1f3b14ca ntdll: Fixed returned status for NtQueryThreadInformation's ThreadDescriptorTable
(spotted by Peter Oberndorfer).
2006-11-15 11:24:41 +01:00
Andrew Talbot
e60c86657a server: Cast-qual warning fix. 2006-10-09 15:23:28 +02:00
Michael Stefaniuc
a624977f21 server: Fix some comparisons between signed and unsigned. 2006-07-26 11:11:04 +02:00