Henri Verbeet : server: Try writing to /proc/<pid>/ mem in write_process_memory().
Alexandre Julliard
julliard at winehq.org
Thu Sep 22 13:39:47 CDT 2011
Module: wine
Branch: master
Commit: e7728c413298025077054187d57e6a7783b3de38
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e7728c413298025077054187d57e6a7783b3de38
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Wed Sep 21 21:01:43 2011 +0200
server: Try writing to /proc/<pid>/mem in write_process_memory().
---
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)
{
More information about the wine-cvs
mailing list