PR binutils/11742
authorNick Clifton <nickc@redhat.com>
Thu, 12 Aug 2010 13:11:11 +0000 (13:11 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 12 Aug 2010 13:11:11 +0000 (13:11 +0000)
        * readelf.c (get_archive_member_name): Do not read beyond the end
        of the ar_name field.

binutils/ChangeLog
binutils/readelf.c

index e86b293ac03c601f730e07baff1c1897012129f1..d051895754b3304db84183acc778e2835ebee3f0 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-12  Michael Haubenwallner  <haubi@gentoo.org>
+
+       PR binutils/11742
+       * readelf.c (get_archive_member_name): Do not read beyond the end
+       of the ar_name field.
+
 2010-08-03  Tristan Gingold  <gingold@adacore.com>
 
        * dwarf.c (display_debug_lines): Mark file argument unused.
index 614f761e94eccdaa5e2d6d1712ed429988b549d1..30a7fcc4a1133307b0fbe830b98e71da3e3672ad 100644 (file)
@@ -12556,7 +12556,8 @@ get_archive_member_name (struct archive_info *  arch,
 
   /* We have a normal (short) name.  */
   j = 0;
-  while ((arch->arhdr.ar_name[j] != '/') && (j < 16))
+  while ((arch->arhdr.ar_name[j] != '/')
+        && (j < sizeof (arch->arhdr.ar_name) - 1))
     j++;
   arch->arhdr.ar_name[j] = '\0';
   return arch->arhdr.ar_name;