ubsan: alpha-vma: timeout

* vms-alpha.c (_bfd_vms_slurp_egsd): Ensure minimum size even
	for "ignored" records.
This commit is contained in:
Alan Modra 2020-01-13 10:10:41 +10:30
parent 0c0adcc524
commit b50ef514ff
2 changed files with 16 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2020-01-13 Alan Modra <amodra@gmail.com>
* vms-alpha.c (_bfd_vms_slurp_egsd): Ensure minimum size even
for "ignored" records.
2020-01-13 Alan Modra <amodra@gmail.com>
* wasm-module.c (wasm_scan_name_function_section): Formatting.

View File

@ -1217,6 +1217,16 @@ _bfd_vms_slurp_egsd (bfd *abfd)
return FALSE;
}
if (gsd_size < 4)
{
too_small:
_bfd_error_handler (_("corrupt EGSD record type %d: size (%#x) "
"is too small"),
gsd_type, gsd_size);
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
switch (gsd_type)
{
case EGSD__C_PSC:
@ -1227,14 +1237,7 @@ _bfd_vms_slurp_egsd (bfd *abfd)
asection *section;
if (offsetof (struct vms_egps, flags) + 2 > gsd_size)
{
too_small:
_bfd_error_handler (_("corrupt EGSD record type %d: size (%#x) "
"is too small"),
gsd_type, gsd_size);
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
goto too_small;
vms_flags = bfd_getl16 (egps->flags);
if ((vms_flags & EGPS__V_REL) == 0)