ntdll: Replace malloc() with RtlAllocateHeap()
Rob Shearman
robertshearman at gmail.com
Wed Feb 18 09:34:32 CST 2009
2009/2/17 Andrew Talbot <andrew.talbot at talbotville.com>:
> Changelog:
> ntdll: Replace malloc() with RtlAllocateHeap().
>
> diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
> index 145540f..0cade3f 100644
> --- a/dlls/ntdll/server.c
> +++ b/dlls/ntdll/server.c
> @@ -743,13 +743,13 @@ static void setup_config_dir(void)
> struct stat st;
> char *tmp_dir;
>
> - if (!(tmp_dir = malloc( p + 1 - config_dir ))) fatal_error( "out of memory\n" );
> + if (!(tmp_dir = RtlAllocateHeap( GetProcessHeap(), 0, p + 1 - config_dir ))) fatal_error( "out of memory\n" );
> memcpy( tmp_dir, config_dir, p - config_dir );
> tmp_dir[p - config_dir] = 0;
> if (!stat( tmp_dir, &st ) && st.st_uid != getuid())
> fatal_error( "'%s' is not owned by you, refusing to create a configuration directory there\n",
> tmp_dir );
> - free( tmp_dir );
> + RtlFreeHeap( GetProcessHeap(), 0, tmp_dir );
> }
I'd be surprised if this worked, since setup_config_dir is called very
early in the ntdll execution sequence, and RtlAllocateHeap itself will
depend on server calls (NtAllocateVirtualMemory, NtCreateMutex, etc.)
that depend on the server having started (i.e. after this function
having already executed).
--
Rob Shearman
More information about the wine-devel
mailing list