PR binutils/14475:

* archive.c (bfd_ar_hdr_from_filesystem): Allocate areltdata on
	'member' BFD.  Don't try to free 'ared'.
This commit is contained in:
Tom Tromey 2012-08-16 14:24:44 +00:00
parent 4232dbd154
commit a3074307fc
2 changed files with 8 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2012-08-16 Tom Tromey <tromey@redhat.com>
PR binutils/14475:
* archive.c (bfd_ar_hdr_from_filesystem): Allocate areltdata on
'member' BFD. Don't try to free 'ared'.
2012-08-14 Nick Clifton <nickc@redhat.com>
* po/uk.po: Updated Ukranian translation.

View File

@ -1896,7 +1896,7 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
}
amt = sizeof (struct ar_hdr) + sizeof (struct areltdata);
ared = (struct areltdata *) bfd_zalloc (abfd, amt);
ared = (struct areltdata *) bfd_zalloc (member, amt);
if (ared == NULL)
return NULL;
hdr = (struct ar_hdr *) (((char *) ared) + sizeof (struct areltdata));
@ -1927,10 +1927,7 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
_bfd_ar_spacepad (hdr->ar_mode, sizeof (hdr->ar_mode), "%-8lo",
status.st_mode);
if (!_bfd_ar_sizepad (hdr->ar_size, sizeof (hdr->ar_size), status.st_size))
{
free (ared);
return NULL;
}
return NULL;
memcpy (hdr->ar_fmag, ARFMAG, 2);
ared->parsed_size = status.st_size;
ared->arch_header = (char *) hdr;