Prevent memory access violations when attempting to parse an x86_64 PE binary contain...
authorNick Clifton <nickc@redhat.com>
Tue, 13 Mar 2018 14:02:52 +0000 (14:02 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 13 Mar 2018 14:02:52 +0000 (14:02 +0000)
commit3e33b239450771394fa6c83b67b9de80169f35e8
tree41501559be5295fda0d75f60a14c4bf2b5ef19e9
parentb0d186effc0af8d5f5f012895a194e7e01d4804c
Prevent memory access violations when attempting to parse an x86_64 PE binary containing corrupt unwind information.

PR 22113
incldue * coff/pe.h (struct pex64_unwind_info): Add a rawUnwindCodesEnd
field.

bfd * pei-x86_64.c (pex64_get_unwind_info): Change to a boolean
function.  Add an end address parameter.  Check access of the data
pointer to make sure that they do not extend beyond the end
address.  Return FALSE if any check fails.  Add the end address
pointer to the ui structure.
(pex64_xdata_print_uwd_codes): Check accesses of the raw unwind
codes to make sure that they do not extend beyond the end address
pointer.  Print an error message and return immediately if any
check fails.
bfd/ChangeLog
bfd/pei-x86_64.c
include/ChangeLog
include/coff/pe.h