ntdll: Initialize APC call and result variables to suppress valgrind warnings

Dmitry Timoshkov dmitry at codeweavers.com
Tue Dec 11 01:16:04 CST 2007


Hello,

Alexandre said that it's OK to use memset for server requests because of
backwards compatibility.

Changelog:
    ntdll: Initialize APC call and result variables to suppress valgrind warnings.
---
 dlls/ntdll/thread.c  |    3 +++
 dlls/ntdll/virtual.c |   27 +++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index 15768c2..aae5aab 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -508,6 +508,9 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.create_thread.type    = APC_CREATE_THREAD;
         call.create_thread.func    = start;
         call.create_thread.arg     = param;
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 684fa5d..46a8344 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1363,6 +1363,9 @@ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG zero_
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_alloc.type      = APC_VIRTUAL_ALLOC;
         call.virtual_alloc.addr      = *ret;
         call.virtual_alloc.size      = *size_ptr;
@@ -1484,6 +1487,9 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *si
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_free.type      = APC_VIRTUAL_FREE;
         call.virtual_free.addr      = addr;
         call.virtual_free.size      = size;
@@ -1580,6 +1586,9 @@ NTSTATUS WINAPI NtProtectVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_protect.type = APC_VIRTUAL_PROTECT;
         call.virtual_protect.addr = addr;
         call.virtual_protect.size = size;
@@ -1681,6 +1690,9 @@ NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr,
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_query.type = APC_VIRTUAL_QUERY;
         call.virtual_query.addr = addr;
         status = NTDLL_queue_process_apc( process, &call, &result );
@@ -1787,6 +1799,9 @@ NTSTATUS WINAPI NtLockVirtualMemory( HANDLE process, PVOID *addr, SIZE_T *size,
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_lock.type = APC_VIRTUAL_LOCK;
         call.virtual_lock.addr = *addr;
         call.virtual_lock.size = *size;
@@ -1822,6 +1837,9 @@ NTSTATUS WINAPI NtUnlockVirtualMemory( HANDLE process, PVOID *addr, SIZE_T *size
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_unlock.type = APC_VIRTUAL_UNLOCK;
         call.virtual_unlock.addr = *addr;
         call.virtual_unlock.size = *size;
@@ -1963,6 +1981,9 @@ NTSTATUS WINAPI NtMapViewOfSection( HANDLE handle, HANDLE process, PVOID *addr_p
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.map_view.type        = APC_MAP_VIEW;
         call.map_view.handle      = handle;
         call.map_view.addr        = *addr_ptr;
@@ -2122,6 +2143,9 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr )
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.unmap_view.type = APC_UNMAP_VIEW;
         call.unmap_view.addr = addr;
         status = NTDLL_queue_process_apc( process, &call, &result );
@@ -2157,6 +2181,9 @@ NTSTATUS WINAPI NtFlushVirtualMemory( HANDLE process, LPCVOID *addr_ptr,
         apc_call_t call;
         apc_result_t result;
 
+        memset( &call, 0, sizeof(call) );
+        memset( &result, 0, sizeof(result) );
+
         call.virtual_flush.type = APC_VIRTUAL_FLUSH;
         call.virtual_flush.addr = addr;
         call.virtual_flush.size = *size_ptr;
-- 
1.5.3.7






More information about the wine-patches mailing list