[RSYM]
authorAmine Khaldi <amine.khaldi@reactos.org>
Sun, 1 Sep 2013 13:23:54 +0000 (13:23 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sun, 1 Sep 2013 13:23:54 +0000 (13:23 +0000)
* 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

reactos/tools/rsym/rsym.c

index 2db6655..0022bf2 100644 (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)
     {