Alexandre Julliard : ntdll: Use malloc() to allocate the buffer in unix_to_nt_file_name().

Alexandre Julliard julliard at winehq.org
Tue Jul 14 16:23:37 CDT 2020


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Jul 14 10:32:04 2020 +0200

ntdll: Use malloc() to allocate the buffer in unix_to_nt_file_name().

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

---

 dlls/ntdll/unix/env.c  | 4 ++--
 dlls/ntdll/unix/file.c | 9 ++++-----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/dlls/ntdll/unix/env.c b/dlls/ntdll/unix/env.c
index 039e5475fe..74cea11be5 100644
--- a/dlls/ntdll/unix/env.c
+++ b/dlls/ntdll/unix/env.c
@@ -1064,7 +1064,7 @@ static void add_path_var( WCHAR *env, SIZE_T *pos, const char *name, const char
     {
         if (unix_to_nt_file_name( path, &nt_name )) return;
         append_envW( env, pos, name, nt_name );
-        RtlFreeHeap( GetProcessHeap(), 0, nt_name );
+        free( nt_name );
     }
 }
 
@@ -1217,7 +1217,7 @@ void CDECL get_initial_directory( UNICODE_STRING *dir )
                 memcpy( dir->Buffer, nt_name, dir->Length );
                 dir->Buffer[1] = '\\';
             }
-            RtlFreeHeap( GetProcessHeap(), 0, nt_name );
+            free( nt_name );
         }
     }
 
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 085052225d..79b87cf99b 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -1834,7 +1834,7 @@ static NTSTATUS fill_name_info( const char *unix_name, FILE_NAME_INFORMATION *in
         else *name_len = info->FileNameLength;
 
         memcpy( info->FileName, ptr, *name_len );
-        RtlFreeHeap( GetProcessHeap(), 0, nt_name );
+        free( nt_name );
     }
 
     return status;
@@ -3447,8 +3447,7 @@ NTSTATUS unix_to_nt_file_name( const char *name, WCHAR **nt )
     else if (status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
 
     lenW = wcslen( prefix );
-    if (!(buffer = RtlAllocateHeap( GetProcessHeap(), 0, (lenA + lenW + 1) * sizeof(WCHAR) )))
-        return STATUS_NO_MEMORY;
+    if (!(buffer = malloc( (lenA + lenW + 1) * sizeof(WCHAR) ))) return STATUS_NO_MEMORY;
     memcpy( buffer, prefix, lenW * sizeof(WCHAR) );
     lenW += ntdll_umbstowcs( path, lenA, buffer + lenW, lenA );
     buffer[lenW] = 0;
@@ -3474,7 +3473,7 @@ NTSTATUS CDECL wine_unix_to_nt_file_name( const char *name, WCHAR *buffer, SIZE_
         if (*size > wcslen(nt_name)) wcscpy( buffer, nt_name );
         else status = STATUS_BUFFER_TOO_SMALL;
         *size = wcslen(nt_name) + 1;
-        RtlFreeHeap( GetProcessHeap(), 0, nt_name );
+        free( nt_name );
     }
     return status;
 }
@@ -6411,7 +6410,7 @@ NTSTATUS WINAPI NtQueryObject( HANDLE handle, OBJECT_INFORMATION_CLASS info_clas
                     wcscpy( p->Name.Buffer, nt_name );
                 }
                 if (used_len) *used_len = sizeof(*p) + size;
-                RtlFreeHeap( GetProcessHeap(), 0, nt_name );
+                free( nt_name );
             }
             RtlFreeHeap( GetProcessHeap(), 0, unix_name );
             break;




More information about the wine-cvs mailing list