From 8fb7057c46b77f3accc9ff8845acb4e1c6299d9a Mon Sep 17 00:00:00 2001 From: Rafal Harabien Date: Mon, 21 Mar 2011 14:16:01 +0000 Subject: [PATCH] Set last error to ERROR_PROC_NOT_FOUND in case of NULL module in GetProcAddress Check for error when freeing datafile Fixes 2 winetests svn path=/trunk/; revision=51104 --- reactos/dll/win32/kernel32/misc/ldr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/kernel32/misc/ldr.c b/reactos/dll/win32/kernel32/misc/ldr.c index 6a954ae802c..decc300fbab 100644 --- a/reactos/dll/win32/kernel32/misc/ldr.c +++ b/reactos/dll/win32/kernel32/misc/ldr.c @@ -310,6 +310,12 @@ GetProcAddress( HMODULE hModule, LPCSTR lpProcName ) FARPROC fnExp = NULL; NTSTATUS Status; + if (!hModule) + { + SetLastError(ERROR_PROC_NOT_FOUND); + return NULL; + } + if (HIWORD(lpProcName) != 0) { RtlInitAnsiString (&ProcedureName, @@ -354,8 +360,7 @@ BOOL WINAPI FreeLibrary(HINSTANCE hLibModule) { /* this is a LOAD_LIBRARY_AS_DATAFILE module */ char *ptr = (char *)hLibModule - 1; - UnmapViewOfFile(ptr); - return TRUE; + return UnmapViewOfFile(ptr); } Status = LdrUnloadDll(hLibModule);