This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 3/5] remove deleted BFDs from the archive cache
On Thu, Aug 16, 2012 at 8:53 PM, Hans-Peter Nilsson
<hans-peter.nilsson@axis.com> wrote:
> (Just replying to the last message in the thread)
>
>> xcalloc shouldn't be called from within bfd. I've already committed a
>> kneejerk patch to revert Tom's last change, instead using bfd_zmalloc
>> here. Tom said he'd look into fixing the leak this causes, so I'm
>> happy to leave that to him. :)
>
> The last I see is (2012-08-17-02:39:34 UTC)
>
> bfd:
> 2012-08-17 Yuri Chornoivan <yurchor@ukr.net>
>
> * elf-bfd.h, * elf32-ppc.c, * elf64-ia64-vms.c, * elfnn-ia64.c,
> * elfxx-mips.c, * vms-alpha.c: Typo fixes.
>
> 2012-08-17 Alan Modra <amodra@gmail.com>
>
> PR binutils/14475:
> * archive.c (bfd_ar_hdr_from_filesystem): Revert last change.
> Instead malloc areltdata.
>
> binutils:
> 2012-08-17 Yuri Chornoivan <yurchor@ukr.net>
>
> * doc/binutils.texi, * objdump.c, * od-xcoff.c: Typo fixes.
>
> 2012-08-16 H.J. Lu <hongjiu.lu@intel.com>
>
> PR binutils/14481
> * Makefile.am (BFDTEST1_PROG): New.
> (TEST_PROGS): Likewise.
> (bfdtest1_DEPENDENCIES): Likewise.
> (noinst_PROGRAMS): Add $(TEST_PROGS).
> * Makefile.in: Regenerated.
>
> * bfdtest1.c: New file.
>
> With this I still see FAILS for cris-elf and cris-linux-gnu (but
> not for arm-unknown-eabi, mipsisa32r2el-unknown-linux-gnu,
> mmix-knuth-mmixware):
> Running /tmp/hpautotest-binutils/bsrc/src/binutils/testsuite/binutils-all/ar.exp ...
> FAIL: ar long file names (bfdtest1)
> FAIL: ar thin archive (bfdtest1)
>
> and in binutils.log:
> Executing on host: /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 tmpdir/artest.a (timeout = 300)
> /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 exited with status 1
> /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 exited with status 1
> FAIL: ar long file names (bfdtest1)
> ...
> Executing on host: /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 tmpdir/artest.a (timeout = 300)
> /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 exited with status 1
> /tmp/hpautotest-binutils/cris-axis-elf/binutils/bfdtest1 exited with status 1
> FAIL: ar thin archive (bfdtest1)
>
> Looking closer, it seems bfdtest1 is a new test, and a host
> program, which might explain the test-result differences.
> Shouldn't bfdtest1 be present and tested for native builds only?
>
bfdtest1 is built the same as other programs. valgrind reports:
==3884==
==3884== Invalid read of size 8
==3884== at 0x403D85: bfd_generic_openr_next_archived_file (archive.c:765)
==3884== by 0x402CCA: main (bfdtest1.c:60)
==3884== Address 0x4c35ec0 is 208 bytes inside a block of size 296 free'd
==3884== at 0x4A079AE: free (vg_replace_malloc.c:427)
==3884== by 0x40D9B7: bfd_close (opncls.c:726)
==3884== by 0x402C9D: main (bfdtest1.c:53)
==3884==
My new test is doing its job. There is a real bug.
--
H.J.