]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libelf: Clear any garbage left in the ar name table.
authorMark Wielaard <mjw@redhat.com>
Mon, 15 Dec 2014 10:17:33 +0000 (11:17 +0100)
committerMark Wielaard <mjw@redhat.com>
Wed, 17 Dec 2014 15:43:27 +0000 (16:43 +0100)
Signed-off-by: Mark Wielaard <mjw@redhat.com>
libelf/ChangeLog
libelf/elf_begin.c

index cf168e7f9fe3a3a7c64906429c2711012daeed61..7406509e1d248dd222f12ea6ffd1dd54fc56b6dc 100644 (file)
@@ -1,3 +1,8 @@
+2014-12-15  Mark Wielaard  <mjw@redhat.com>
+
+       * elf_begin.c (read_long_names): Clear any garbage left in the
+       name table.
+
 2014-12-11  Mark Wielaard  <mjw@redhat.com>
 
        * elf_begin.c (file_read_elf): Correct ELF64 section offset check.
index 7fb5fa5be2fefdbd3a9e917fb3d9ca80229f9ba8..c24a36426db0ba6e6288132113d69f0cd4be9eb2 100644 (file)
@@ -734,10 +734,14 @@ read_long_names (Elf *elf)
       runp = newp;
       while (1)
         {
+         char *startp = runp;
          runp = (char *) memchr (runp, '/', newp + len - runp);
          if (runp == NULL)
-           /* This was the last entry.  */
-           break;
+           {
+             /* This was the last entry.  Clear any left overs.  */
+             memset (startp, '\0', newp + len - startp);
+             break;
+           }
 
          /* NUL-terminate the string.  */
          *runp = '\0';