Skip to content
Snippets Groups Projects
Commit 7a685030 authored by eric pouech's avatar eric pouech Committed by Alexandre Julliard
Browse files

winedump: Manage the string table size in PE file format.

parent e8158e48
No related branches found
No related tags found
No related merge requests found
......@@ -373,8 +373,12 @@ static void dump_pe_header(void)
void dump_section(const IMAGE_SECTION_HEADER *sectHead, const char* strtable)
{
if (strtable && sectHead->Name[0] == '/') /* long section name */
printf(" %.8s (%s)", sectHead->Name, strtable + atoi((const char*)sectHead->Name + 1));
unsigned offset;
/* long section name ? */
if (strtable && sectHead->Name[0] == '/' &&
((offset = atoi((const char*)sectHead->Name + 1)) < *(DWORD*)strtable))
printf(" %.8s (%s)", sectHead->Name, strtable + offset);
else
printf(" %-8.8s", sectHead->Name);
printf(" VirtSize: 0x%08x VirtAddr: 0x%08x\n",
......@@ -456,7 +460,6 @@ static void dump_sections(const void *base, const void* addr, unsigned num_sect)
if (PE_nt_headers->FileHeader.PointerToSymbolTable && PE_nt_headers->FileHeader.NumberOfSymbols)
{
/* FIXME: no way to get strtable size */
strtable = (const char*)base +
PE_nt_headers->FileHeader.PointerToSymbolTable +
PE_nt_headers->FileHeader.NumberOfSymbols * sizeof(IMAGE_SYMBOL);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment