kernel32: Update VirtualAddress of resource section in write_raw_resources.
This commit is contained in:
parent
3ccaad8b41
commit
270d66efc7
|
@ -1554,6 +1554,7 @@ static BOOL write_raw_resources( QUEUEDUPDATES *updates )
|
|||
sec->SizeOfRawData = section_size;
|
||||
sec->Misc.VirtualSize = virtual_section_size;
|
||||
nt->OptionalHeader.SizeOfImage += rva_delta;
|
||||
nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = sec->VirtualAddress;
|
||||
nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = res_size.total_size;
|
||||
nt->OptionalHeader.SizeOfInitializedData = get_init_data_size( write_map->base, mapping_size );
|
||||
}
|
||||
|
|
|
@ -394,6 +394,7 @@ static void check_exe( const sec_verify *verify )
|
|||
int i;
|
||||
IMAGE_DOS_HEADER *dos;
|
||||
IMAGE_NT_HEADERS *nt;
|
||||
IMAGE_OPTIONAL_HEADER *opt;
|
||||
IMAGE_SECTION_HEADER *sec;
|
||||
IMAGE_RESOURCE_DIRECTORY *dir;
|
||||
HANDLE file, mapping;
|
||||
|
@ -415,6 +416,7 @@ static void check_exe( const sec_verify *verify )
|
|||
goto end;
|
||||
|
||||
nt = (void*) ((BYTE*) dos + dos->e_lfanew);
|
||||
opt = &nt->OptionalHeader;
|
||||
sec = (void*) &nt[1];
|
||||
|
||||
for(i = 0; i < max_sections; i++)
|
||||
|
@ -444,6 +446,10 @@ static void check_exe( const sec_verify *verify )
|
|||
verify->NumberOfNamedEntries, dir->NumberOfNamedEntries);
|
||||
ok( dir->NumberOfIdEntries == verify->NumberOfIdEntries, "NumberOfIdEntries should be %d instead of %d\n",
|
||||
verify->NumberOfIdEntries, dir->NumberOfIdEntries);
|
||||
|
||||
ok(opt->DataDirectory[IMAGE_FILE_RESOURCE_DIRECTORY].VirtualAddress == sec[verify->rsrc_section].VirtualAddress,
|
||||
"VirtualAddress in optional header should be %d instead of %d\n",
|
||||
sec[verify->rsrc_section].VirtualAddress, opt->DataDirectory[IMAGE_FILE_RESOURCE_DIRECTORY].VirtualAddress);
|
||||
}
|
||||
|
||||
end:
|
||||
|
|
Loading…
Reference in New Issue