From 7bef6e865e55de28d45211414d9bc49ff74f3af0 Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Sat, 12 May 2007 22:54:58 +0000 Subject: [PATCH] Check result of ANSI -> Unicode conversion, which can fail in the case of memory shortage. svn path=/trunk/; revision=26741 --- reactos/dll/ntdll/ldr/utils.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/reactos/dll/ntdll/ldr/utils.c b/reactos/dll/ntdll/ldr/utils.c index 1b8732b1dad..e261f9f951e 100644 --- a/reactos/dll/ntdll/ldr/utils.c +++ b/reactos/dll/ntdll/ldr/utils.c @@ -1329,12 +1329,18 @@ LdrpGetOrLoadModule(PWCHAR SerachPath, PLDR_DATA_TABLE_ENTRY* Module, BOOLEAN Load) { + ANSI_STRING AnsiDllName; UNICODE_STRING DllName; NTSTATUS Status; DPRINT("LdrpGetOrLoadModule() called for %s\n", Name); - RtlCreateUnicodeStringFromAsciiz (&DllName, Name); + RtlInitAnsiString(&AnsiDllName, Name); + Status = RtlAnsiStringToUnicodeString(&DllName, &AnsiDllName, TRUE); + if (!NT_SUCCESS(Status)) + { + return Status; + } Status = LdrFindEntryForName (&DllName, Module, Load); if (Load && !NT_SUCCESS(Status))