]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-04-14 Bean <bean123ch@gmail.com>
authorbean <bean@localhost>
Tue, 14 Apr 2009 16:56:35 +0000 (16:56 +0000)
committerbean <bean@localhost>
Tue, 14 Apr 2009 16:56:35 +0000 (16:56 +0000)
* util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
properly with null character.

ChangeLog
util/grub-pe2elf.c

index 7d4ca0ad4df0846bffeac663dd379528da56e592..5119013f084403ccc701eaf6caa53b646220ea49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-14  Bean  <bean123ch@gmail.com>
+
+       * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
+       properly with null character.
+
 2009-04-14  Felix Zielcke  <fzielcke@z-51.de>
 
        * configure: Remove.
index d703d33c34bfeaf499fba2ae1525c1a23e2ced05..ddcebc110e1d535cc8c906b50de95e085390b9ec 100644 (file)
@@ -344,10 +344,17 @@ write_symbol_table (FILE* fp, char *image,
         }
       else
         {
+         char short_name[9];
           char *name;
 
-          name = ((pe_symtab->long_name[0]) ? pe_symtab->short_name :
-                  pe_strtab + pe_symtab->long_name[1]);
+         if (pe_symtab->long_name[0])
+           {
+             strncpy (short_name, pe_symtab->short_name, 8);
+             short_name[8] = 0;
+             name = short_name;
+           }
+         else
+           name = pe_strtab + pe_symtab->long_name[1];
 
           if ((strcmp (name, "_grub_mod_init")) &&
               (strcmp (name, "_grub_mod_fini")) &&