From: Marc-Aurel Zent mzent@codeweavers.com
--- server/mach.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/server/mach.c b/server/mach.c index 7675835426a..0f75d892816 100644 --- a/server/mach.c +++ b/server/mach.c @@ -422,6 +422,8 @@ int write_process_memory( struct process *process, client_ptr_t ptr, data_size_t mach_port_t process_port = get_process_port( process ); mach_vm_offset_t data;
+ if (written) *written = 0; + if (!process_port) { set_error( STATUS_ACCESS_DENIED ); @@ -529,8 +531,9 @@ int write_process_memory( struct process *process, client_ptr_t ptr, data_size_t info.protection ); if (ret != KERN_SUCCESS) break;
- current_address += write_size; - remaining_size -= write_size; + if (written) *written += write_size; + current_address += write_size; + remaining_size -= write_size; }
task_resume( process_port );