ntdll: Change the test for no relocation information to use the
IMAGE_FILE_RELOCS_STRIPPED flag instead of a zero sized relocations section. This fixes loading of resource-only DLLs that have a load-address of 0x400000.
This commit is contained in:
parent
e072d7a0a3
commit
850ae994c6
|
@ -1038,7 +1038,7 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz
|
||||||
const IMAGE_DATA_DIRECTORY *relocs;
|
const IMAGE_DATA_DIRECTORY *relocs;
|
||||||
|
|
||||||
relocs = &nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];
|
relocs = &nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];
|
||||||
if (!relocs->VirtualAddress || !relocs->Size)
|
if (nt->FileHeader.Characteristics & IMAGE_FILE_RELOCS_STRIPPED)
|
||||||
{
|
{
|
||||||
if (nt->OptionalHeader.ImageBase == 0x400000) {
|
if (nt->OptionalHeader.ImageBase == 0x400000) {
|
||||||
ERR("Image was mapped at %p: standard load address for a Win32 program (0x00400000) not available\n", ptr);
|
ERR("Image was mapped at %p: standard load address for a Win32 program (0x00400000) not available\n", ptr);
|
||||||
|
|
Loading…
Reference in New Issue