[PATCH 1/5] server: Try writing to /proc/<pid>/mem in write_process_memory().
Henri Verbeet
hverbeet at codeweavers.com
Wed Sep 21 14:01:43 CDT 2011
Recent Linux versions support writable /proc/<pid>/mem.
---
server/ptrace.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/server/ptrace.c b/server/ptrace.c
index 51157ab..6c14481 100644
--- a/server/ptrace.c
+++ b/server/ptrace.c
@@ -463,6 +463,25 @@ int write_process_memory( struct process *process, client_ptr_t ptr, data_size_t
set_error( STATUS_ACCESS_DENIED );
goto done;
}
+
+ if (len > 3)
+ {
+ char procmem[24];
+ int fd;
+
+ sprintf( procmem, "/proc/%u/mem", process->unix_pid );
+ if ((fd = open( procmem, O_WRONLY )) != -1)
+ {
+ ssize_t r = pwrite( fd, src, size, ptr );
+ close( fd );
+ if (r == size)
+ {
+ ret = 1;
+ goto done;
+ }
+ }
+ }
+
/* first word is special */
if (len > 1)
{
--
1.7.3.4
More information about the wine-patches
mailing list