Alexandre Julliard : ntdll: Use malloc() to allocate the object attributes buffer.

Alexandre Julliard julliard at winehq.org
Fri Jul 3 14:36:17 CDT 2020


Module: wine
Branch: master
Commit: a07cff77d3bd452c3c4b99bf93503f727bf768cb
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a07cff77d3bd452c3c4b99bf93503f727bf768cb

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Jul  3 12:04:02 2020 +0200

ntdll: Use malloc() to allocate the object attributes buffer.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/file.c    |  6 +++---
 dlls/ntdll/unix/process.c |  6 +++---
 dlls/ntdll/unix/sync.c    | 19 +++++++++----------
 dlls/ntdll/unix/thread.c  |  4 ++--
 4 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index a77cb6d410..5ed7a21d8e 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3596,7 +3596,7 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
             *handle = wine_server_ptr_handle( reply->handle );
         }
         SERVER_END_REQ;
-        RtlFreeHeap( GetProcessHeap(), 0, objattr );
+        free( objattr );
         RtlFreeAnsiString( &unix_name );
     }
     else WARN( "%s not found (%x)\n", debugstr_us(attr->ObjectName), io->u.Status );
@@ -3671,7 +3671,7 @@ NTSTATUS WINAPI NtCreateMailslotFile( HANDLE *handle, ULONG access, OBJECT_ATTRI
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return status;
 }
 
@@ -3719,7 +3719,7 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( HANDLE *handle, ULONG access, OBJECT_ATTR
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return status;
 }
 
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c
index 33bee03c19..6c29055821 100644
--- a/dlls/ntdll/unix/process.c
+++ b/dlls/ntdll/unix/process.c
@@ -836,7 +836,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_
     if (socketpair( PF_UNIX, SOCK_STREAM, 0, socketfd ) == -1)
     {
         status = STATUS_TOO_MANY_OPENED_FILES;
-        RtlFreeHeap( GetProcessHeap(), 0, objattr );
+        free( objattr );
         goto done;
     }
 #ifdef SO_PASSCRED
@@ -873,7 +873,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_
         process_info = wine_server_ptr_handle( reply->info );
     }
     SERVER_END_REQ;
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
 
     if (status)
     {
@@ -906,7 +906,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_
         }
     }
     SERVER_END_REQ;
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     if (status) goto done;
 
     /* create the child process */
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 4402584f28..5080caef52 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -263,8 +263,7 @@ NTSTATUS alloc_object_attributes( const OBJECT_ATTRIBUTES *attr, struct object_a
 
     len = (len + 3) & ~3;  /* DWORD-align the entire structure */
 
-    *ret = RtlAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, len );
-    if (!*ret) return STATUS_NO_MEMORY;
+    if (!(*ret = calloc( len, 1 ))) return STATUS_NO_MEMORY;
 
     (*ret)->rootdir = wine_server_obj_handle( attr->RootDirectory );
     (*ret)->attributes = attr->Attributes;
@@ -341,7 +340,7 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
@@ -448,7 +447,7 @@ NTSTATUS WINAPI NtCreateEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
@@ -601,7 +600,7 @@ NTSTATUS WINAPI NtCreateMutant( HANDLE *handle, ACCESS_MASK access, const OBJECT
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
@@ -702,7 +701,7 @@ NTSTATUS WINAPI NtCreateJobObject( HANDLE *handle, ACCESS_MASK access, const OBJ
         *handle = wine_server_ptr_handle( reply->handle );
     }
     SERVER_END_REQ;
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
@@ -937,7 +936,7 @@ NTSTATUS WINAPI NtCreateTimer( HANDLE *handle, ACCESS_MASK access, const OBJECT_
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 
 }
@@ -1280,7 +1279,7 @@ NTSTATUS WINAPI NtCreateKeyedEvent( HANDLE *handle, ACCESS_MASK access,
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
@@ -1370,7 +1369,7 @@ NTSTATUS WINAPI NtCreateIoCompletion( HANDLE *handle, ACCESS_MASK access, OBJECT
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return status;
 }
 
@@ -1583,7 +1582,7 @@ NTSTATUS WINAPI NtCreateSection( HANDLE *handle, ACCESS_MASK access, const OBJEC
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     return ret;
 }
 
diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c
index 686d3991b7..299fb4be43 100644
--- a/dlls/ntdll/unix/thread.c
+++ b/dlls/ntdll/unix/thread.c
@@ -193,7 +193,7 @@ NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle, ACCESS_MASK access, OBJECT_ATT
 
     if (server_pipe( request_pipe ) == -1)
     {
-        RtlFreeHeap( GetProcessHeap(), 0, objattr );
+        free( objattr );
         return STATUS_TOO_MANY_OPENED_FILES;
     }
     server_send_fd( request_pipe[0] );
@@ -216,7 +216,7 @@ NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle, ACCESS_MASK access, OBJECT_ATT
     }
     SERVER_END_REQ;
 
-    RtlFreeHeap( GetProcessHeap(), 0, objattr );
+    free( objattr );
     if (status)
     {
         close( request_pipe[1] );




More information about the wine-cvs mailing list