Module: wine Branch: master Commit: 029ec25e54166535978a47bffe6efd846e8609fa URL: https://source.winehq.org/git/wine.git/?a=commit;h=029ec25e54166535978a47bff...
Author: Kevin Puetz PuetzKevinA@JohnDeere.com Date: Mon Nov 23 19:55:25 2020 -0600
ntdll: Don't access empty IMAGE_FILE_IMPORT_DIRECTORY.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/unix/loader.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index c2b6ea603e3..61c8f5e18f5 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -810,11 +810,15 @@ static NTSTATUS fixup_ntdll_imports( const char *name, HMODULE module ) { const IMAGE_NT_HEADERS *nt; const IMAGE_IMPORT_DESCRIPTOR *descr; + const IMAGE_DATA_DIRECTORY *dir; const IMAGE_THUNK_DATA *import_list; IMAGE_THUNK_DATA *thunk_list;
nt = get_rva( module, ((IMAGE_DOS_HEADER *)module)->e_lfanew ); - descr = get_rva( module, nt->OptionalHeader.DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].VirtualAddress ); + dir = &nt->OptionalHeader.DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY]; + if (!dir->VirtualAddress || !dir->Size) return STATUS_SUCCESS; + + descr = get_rva( module, dir->VirtualAddress ); for (; descr->Name && descr->FirstThunk; descr++) { thunk_list = get_rva( module, descr->FirstThunk );