Fix address violation issues encountered when parsing corrupt binaries.

PR 21840
	* mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab
	size is -1.
	* nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion
	with error return.
	* section.c (bfd_make_section_with_flags): Fail if the name or bfd
	are NULL.
	* vms-alpha.c (bfd_make_section_with_flags): Correct computation
	of end pointer.
	(evax_bfd_print_emh): Check for invalid string lengths.
This commit is contained in:
Nick Clifton
2017-07-27 12:04:50 +01:00
parent 63d4980d60
commit 8bdf0be19d
6 changed files with 82 additions and 39 deletions

View File

@@ -135,8 +135,8 @@ _bfd_hexdump (int level, unsigned char *ptr, int size, int offset)
#endif
/* Copy sized string (string with fixed size) to new allocated area
size is string size (size of record) */
/* Copy sized string (string with fixed size) to new allocated area.
Size is string size (size of record). */
char *
_bfd_vms_save_sized_string (unsigned char *str, unsigned int size)
@@ -151,8 +151,8 @@ _bfd_vms_save_sized_string (unsigned char *str, unsigned int size)
return newstr;
}
/* Copy counted string (string with size at first byte) to new allocated area
ptr points to size byte on entry */
/* Copy counted string (string with size at first byte) to new allocated area.
PTR points to size byte on entry. */
char *
_bfd_vms_save_counted_string (unsigned char *ptr, unsigned int maxlen)