mirror of
https://github.com/reactos/reactos.git
synced 2025-04-18 19:47:14 +00:00
- Alexandre Julliard : kernel32: Cope with an empty resource section in UpdateResource.
- Wine Bug 19783 : http://bugs.winehq.org/show_bug.cgi?id=19783 svn path=/trunk/; revision=43157
This commit is contained in:
parent
40d2ff91c9
commit
8d1578aa14
1 changed files with 11 additions and 10 deletions
|
@ -405,13 +405,6 @@ static IMAGE_SECTION_HEADER *get_resource_section( void *base, DWORD mapping_siz
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* check that the resources section is last */
|
||||
if (i != num_sections - 1)
|
||||
{
|
||||
DPRINT("FIXME: .rsrc isn't the last section\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &sec[i];
|
||||
}
|
||||
|
||||
|
@ -566,6 +559,9 @@ static BOOL read_mapped_resources( QUEUEDUPDATES *updates, void *base, DWORD map
|
|||
|
||||
DPRINT("found .rsrc at %08x, size %08x\n", sec[i].PointerToRawData, sec[i].SizeOfRawData);
|
||||
|
||||
if (!sec[i].PointerToRawData || sec[i].SizeOfRawData < sizeof(IMAGE_RESOURCE_DIRECTORY))
|
||||
return TRUE;
|
||||
|
||||
root = (void*) ((BYTE*)base + sec[i].PointerToRawData);
|
||||
enumerate_mapped_resources( updates, base, mapping_size, root );
|
||||
|
||||
|
@ -962,10 +958,15 @@ static BOOL write_raw_resources( QUEUEDUPDATES *updates )
|
|||
if (!sec)
|
||||
goto done;
|
||||
|
||||
if ((sec->SizeOfRawData + sec->PointerToRawData) != write_map->size)
|
||||
if (!sec->PointerToRawData) /* empty section */
|
||||
{
|
||||
DPRINT("FIXME: .rsrc isn't at the end of the image %08x + %08x != %08x\n",
|
||||
sec->SizeOfRawData, sec->PointerToRawData, write_map->size);
|
||||
sec->PointerToRawData = write_map->size;
|
||||
sec->SizeOfRawData = 0;
|
||||
}
|
||||
else if ((sec->SizeOfRawData + sec->PointerToRawData) != write_map->size)
|
||||
{
|
||||
DPRINT(".rsrc isn't at the end of the image %08x + %08x != %08x for %s\n",
|
||||
sec->SizeOfRawData, sec->PointerToRawData, write_map->size, updates->pFileName);
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue