Avoid GetProcessHeap() inside ntdll.

oldstable
Alexandre Julliard 2003-03-14 23:16:46 +00:00
parent cfd8bb8c18
commit 769a84fac1
4 changed files with 24 additions and 16 deletions

View File

@ -591,7 +591,7 @@ NTSTATUS WINAPI RtlFormatCurrentUserKeyPath( IN OUT PUNICODE_STRING KeyPath)
ANSI_STRING AnsiPath;
NTSTATUS ret;
if (!(buffer = RtlAllocateHeap( GetProcessHeap(), 0, strlen(user)+16 )))
if (!(buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, strlen(user)+16 )))
return STATUS_NO_MEMORY;
strcpy( buffer, "\\Registry\\User\\" );

View File

@ -30,6 +30,7 @@
#include "winreg.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
@ -358,7 +359,7 @@ BOOLEAN WINAPI RtlDosPathNameToNtPathName_U(
length = strlenW(szwDosPath) * sizeof (WCHAR) + sizeof szPrefix;
ntpath->Buffer = RtlAllocateHeap(GetProcessHeap(), 0, length);
ntpath->Buffer = RtlAllocateHeap(ntdll_get_process_heap(), 0, length);
ntpath->Length = 0;
ntpath->MaximumLength = length;

View File

@ -30,6 +30,7 @@
#include "winternl.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
@ -94,7 +95,7 @@ void WINAPI RtlInitString( PSTRING target, LPCSTR source )
*/
void WINAPI RtlFreeAnsiString( PSTRING str )
{
if (str->Buffer) RtlFreeHeap( GetProcessHeap(), 0, str->Buffer );
if (str->Buffer) RtlFreeHeap( ntdll_get_process_heap(), 0, str->Buffer );
}
@ -142,7 +143,7 @@ void WINAPI RtlInitUnicodeString( PUNICODE_STRING target, LPCWSTR source )
BOOLEAN WINAPI RtlCreateUnicodeString( PUNICODE_STRING target, LPCWSTR src )
{
int len = (strlenW(src) + 1) * sizeof(WCHAR);
if (!(target->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, len ))) return FALSE;
if (!(target->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, len ))) return FALSE;
memcpy( target->Buffer, src, len );
target->MaximumLength = len;
target->Length = len - sizeof(WCHAR);
@ -166,7 +167,7 @@ BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz( PUNICODE_STRING target, LPCSTR
*/
void WINAPI RtlFreeUnicodeString( PUNICODE_STRING str )
{
if (str->Buffer) RtlFreeHeap( GetProcessHeap(), 0, str->Buffer );
if (str->Buffer) RtlFreeHeap( ntdll_get_process_heap(), 0, str->Buffer );
}
@ -352,7 +353,8 @@ NTSTATUS WINAPI RtlAnsiStringToUnicodeString( PUNICODE_STRING uni,
if (doalloc)
{
uni->MaximumLength = total;
if (!(uni->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, total ))) return STATUS_NO_MEMORY;
if (!(uni->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, total )))
return STATUS_NO_MEMORY;
}
else if (total > uni->MaximumLength) return STATUS_BUFFER_OVERFLOW;
@ -380,7 +382,8 @@ NTSTATUS WINAPI RtlOemStringToUnicodeString( UNICODE_STRING *uni,
if (doalloc)
{
uni->MaximumLength = total;
if (!(uni->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, total ))) return STATUS_NO_MEMORY;
if (!(uni->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, total )))
return STATUS_NO_MEMORY;
}
else if (total > uni->MaximumLength) return STATUS_BUFFER_OVERFLOW;
@ -408,7 +411,8 @@ NTSTATUS WINAPI RtlUnicodeStringToAnsiString( STRING *ansi,
if (doalloc)
{
ansi->MaximumLength = len;
if (!(ansi->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, len ))) return STATUS_NO_MEMORY;
if (!(ansi->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, len )))
return STATUS_NO_MEMORY;
}
else if (ansi->MaximumLength < len)
{
@ -441,7 +445,8 @@ NTSTATUS WINAPI RtlUnicodeStringToOemString( STRING *oem,
if (doalloc)
{
oem->MaximumLength = len;
if (!(oem->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, len ))) return STATUS_NO_MEMORY;
if (!(oem->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, len )))
return STATUS_NO_MEMORY;
}
else if (oem->MaximumLength < len)
{
@ -570,7 +575,8 @@ NTSTATUS WINAPI RtlUpcaseUnicodeString( UNICODE_STRING *dest,
if (doalloc)
{
dest->MaximumLength = len;
if (!(dest->Buffer = RtlAllocateHeap( GetProcessHeap(), 0, len ))) return STATUS_NO_MEMORY;
if (!(dest->Buffer = RtlAllocateHeap( ntdll_get_process_heap(), 0, len )))
return STATUS_NO_MEMORY;
}
else if (len > dest->MaximumLength) return STATUS_BUFFER_OVERFLOW;
@ -634,10 +640,10 @@ NTSTATUS WINAPI RtlUpcaseUnicodeToMultiByteN( LPSTR dst, DWORD dstlen, LPDWORD r
LPWSTR upcase;
DWORD i;
if (!(upcase = RtlAllocateHeap( GetProcessHeap(), 0, srclen ))) return STATUS_NO_MEMORY;
if (!(upcase = RtlAllocateHeap( ntdll_get_process_heap(), 0, srclen ))) return STATUS_NO_MEMORY;
for (i = 0; i < srclen/sizeof(WCHAR); i++) upcase[i] = toupperW(src[i]);
ret = RtlUnicodeToMultiByteN( dst, dstlen, reslen, upcase, srclen );
RtlFreeHeap( GetProcessHeap(), 0, upcase );
RtlFreeHeap( ntdll_get_process_heap(), 0, upcase );
return ret;
}
@ -652,10 +658,10 @@ NTSTATUS WINAPI RtlUpcaseUnicodeToOemN( LPSTR dst, DWORD dstlen, LPDWORD reslen,
LPWSTR upcase;
DWORD i;
if (!(upcase = RtlAllocateHeap( GetProcessHeap(), 0, srclen ))) return STATUS_NO_MEMORY;
if (!(upcase = RtlAllocateHeap( ntdll_get_process_heap(), 0, srclen ))) return STATUS_NO_MEMORY;
for (i = 0; i < srclen/sizeof(WCHAR); i++) upcase[i] = toupperW(src[i]);
ret = RtlUnicodeToOemN( dst, dstlen, reslen, upcase, srclen );
RtlFreeHeap( GetProcessHeap(), 0, upcase );
RtlFreeHeap( ntdll_get_process_heap(), 0, upcase );
return ret;
}

View File

@ -78,7 +78,8 @@ BOOLEAN WINAPI RtlAllocateAndInitializeSid (
nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3,
nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7, pSid);
if (!(*pSid = RtlAllocateHeap( GetProcessHeap(), 0, RtlLengthRequiredSid(nSubAuthorityCount))))
if (!(*pSid = RtlAllocateHeap( ntdll_get_process_heap(), 0,
RtlLengthRequiredSid(nSubAuthorityCount))))
return FALSE;
(*pSid)->Revision = SID_REVISION;
@ -148,7 +149,7 @@ BOOL WINAPI RtlEqualPrefixSid (PSID pSid1, PSID pSid2)
DWORD WINAPI RtlFreeSid(PSID pSid)
{
TRACE("(%p)\n", pSid);
RtlFreeHeap( GetProcessHeap(), 0, pSid );
RtlFreeHeap( ntdll_get_process_heap(), 0, pSid );
return STATUS_SUCCESS;
}