From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17994 invoked by alias); 8 May 2005 01:13:02 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 17825 invoked from network); 8 May 2005 01:12:41 -0000 Received: from unknown (HELO smtp.gentoo.org) (134.68.220.30) by sourceware.org with SMTP; 8 May 2005 01:12:41 -0000 Received: from localhost ([127.0.0.1] helo=home.wh0rd.org) by smtp.gentoo.org with esmtp (Exim 4.43) id 1DUaLY-000020-1i for binutils@sources.redhat.com; Sun, 08 May 2005 01:12:40 +0000 Received: (qmail 25601 invoked from network); 7 May 2005 21:12:13 -0400 Received: from unknown (HELO vapier) (192.168.0.2) by 192.168.0.1 with SMTP; 7 May 2005 21:12:13 -0400 From: Mike Frysinger To: binutils@sources.redhat.com Subject: BFD overflows Date: Sun, 08 May 2005 07:56:00 -0000 User-Agent: KMail/1.8 MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_BgWfCsjF2VVAexd" Message-Id: <200505072114.41510.vapier@gentoo.org> X-SW-Source: 2005-05/txt/msg00331.txt.bz2 --Boundary-00=_BgWfCsjF2VVAexd Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1920 we were playing around with bfd-related apps in Gentoo and ended up finding that many can be overflowed with junk binaries Sebastian Krahmer from SuSe proposed this patch which fixes some of the overflows (should apply cleanly to mainline and the 2.16 branch): http://viewcvs.gentoo.org/src/patchsets/binutils/2.16/81_all_binutils-2.15-bfd-overflow.patch?root=gentoo&rev=1.1 however, at least one issue still remains. find attached a small binary which, when you run `strings` on it, triggers a segfault: $ strings --version GNU strings 2.16 Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. $ gdb --args strings strings.114 Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /var/tmp/portage/binutils-2.16/binutils/strings /root/strings.114 Program received signal SIGSEGV, Segmentation fault. 0x0000000000422048 in bfd_elf_string_from_elf_section (abfd=0x5a9090, shindex=26, strindex=11) at elf.c:288 288 if (hdr->contents == NULL (gdb) bt #0 0x0000000000422048 in bfd_elf_string_from_elf_section (abfd=0x5a9090, shindex=26, strindex=11) at elf.c:288 #1 0x000000000042546f in bfd_section_from_shdr (abfd=0x5a9090, shindex=1) at elf.c:1713 #2 0x00000000004522f8 in bfd_elf32_object_p (abfd=0x5a9090) at elfcode.h:723 #3 0x000000000040a2df in bfd_check_format_matches (abfd=0x5a9090, format=bfd_object, matching=0x0) at format.c:228 #4 0x000000000040a07c in bfd_check_format (abfd=0x5a9090, format=bfd_object) at format.c:91 #5 0x000000000040243a in strings_object_file (file=0x7fffffb25439 "/root/strings.114") at strings.c:358 #6 0x0000000000402532 in strings_file (file=0x7fffffb25439 "/root/strings.114") at strings.c:397 #7 0x000000000040230f in main (argc=2, argv=0x7fffffb24868) at strings.c:306 -mike --Boundary-00=_BgWfCsjF2VVAexd Content-Type: application/x-bzip2; name="strings.114.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="strings.114.bz2" Content-length: 12078 QlpoOTFBWSZTWXuByI8AFfP///////////////////////////////////// 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 --Boundary-00=_BgWfCsjF2VVAexd--