PR23781, _bfd_pe_bfd_copy_private_bfd_data_common memory leak

PR 23781
	* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Free data
	before returning.
This commit is contained in:
Alan Modra 2018-10-16 15:23:20 +10:30
parent feceaa596e
commit 8df73d5cc3
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2018-10-16 Alan Modra <amodra@gmail.com>
PR 23781
* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Free data
before returning.
2018-10-16 Alan Modra <amodra@gmail.com>
PR 23534

View File

@ -2993,6 +2993,7 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd)
"exceeds space left in section (%" PRIx64 ")"),
obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size,
(uint64_t) (section->size - (addr - section->vma)));
free (data);
return FALSE;
}
/* PR 23110. */
@ -3002,6 +3003,7 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd)
_bfd_error_handler
(_("%pB: Data Directory size (%#lx) is negative"),
obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size);
free (data);
return FALSE;
}
@ -3030,8 +3032,10 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd)
if (!bfd_set_section_contents (obfd, section, data, 0, section->size))
{
_bfd_error_handler (_("failed to update file offsets in debug directory"));
free (data);
return FALSE;
}
free (data);
}
else if (section)
{