* Don't overwrite the MZ header when there are no long section names.
* Correct an error including 4 more bytes than needed in the coff strings.
* Brought to you by Arty.

svn path=/trunk/; revision=59938
This commit is contained in:
Amine Khaldi 2013-09-01 13:23:54 +00:00
parent 762f3e87da
commit af5ce0ae6b

View file

@ -1161,13 +1161,18 @@ CreateOutputFile(FILE *OutFile, void *InData,
}
}
fseek(OutFile, OutFileHeader->PointerToSymbolTable, 0);
/* COFF string section is preceeded by a length */
fwrite((char*)&StringTableLength, 1, sizeof(StringTableLength), OutFile);
/* We just copy enough of the string table to contain the strings we want
The string table length technically counts as part of the string table
space itself. */
fwrite(StringTable+4, 1, StringTableLength, OutFile);
if (OutFileHeader->PointerToSymbolTable)
{
fseek(OutFile, OutFileHeader->PointerToSymbolTable, 0);
/* COFF string section is preceeded by a length */
assert(sizeof(StringTableLength) == 4);
fwrite((char*)&StringTableLength, 1, sizeof(StringTableLength), OutFile);
/* We just copy enough of the string table to contain the strings we want
The string table length technically counts as part of the string table
space itself. */
fwrite(StringTable + 4, 1, StringTableLength - 4, OutFile);
}
if (PaddedRosSym)
{