aoutx.h (aout_<bits>_swap_exec_header_in): Zero out the internal_exec

structure before initializing the fields that are used, so that the unused
fields are in a known state.  Two of these structures are memcmp'd so
any fields not explicitly initialized must be set to a known state.
This commit is contained in:
Fred Fish 1992-04-24 01:42:41 +00:00
parent 386b54d606
commit 55c0061edd
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
Thu Apr 23 18:37:55 1992 Fred Fish (fnf@cygnus.com)
* aoutx.h (aout_<bits>_swap_exec_header_in): Zero out the
internal_exec structure before initializing the fields that
are used, so that the unused fields are in a known state.
Wed Apr 22 09:36:08 1992 Fred Fish (fnf@cygnus.com)
* tekhex.c (struct data_struct): Convert from typedef that

View File

@ -222,6 +222,11 @@ DEFUN(NAME(aout,swap_exec_header_in),(abfd, raw_bytes, execp),
{
struct external_exec *bytes = (struct external_exec *)raw_bytes;
/* The internal_exec structure has some fields that are unused in this
configuration (IE for i960), so ensure that all such uninitialized
fields are zero'd out. There are places where two of these structs
are memcmp'd, and thus the contents do matter. */
memset (execp, 0, sizeof (struct internal_exec));
/* Now fill in fields in the execp, from the bytes in the raw data. */
execp->a_info = bfd_h_get_32 (abfd, bytes->e_info);
execp->a_text = GET_WORD (abfd, bytes->e_text);
@ -677,7 +682,7 @@ boolean
if (abfd->flags & (D_PAGED|WP_TEXT))
{
bfd_size_type text_pad =
BFD_ALIGN(text_size, adata(abfd).segment_size)
BFD_ALIGN(text_size, adata(abfd).page_size)
- text_size;
text_end += text_pad;
obj_textsec(abfd)->_raw_size += text_pad;
@ -1687,7 +1692,8 @@ DEFUN(NAME(aout,print_symbol),(ignore_abfd, afile, symbol, how),
if (section_code == 'U')
fprintf(file, " ");
fprintf_vma(file, symbol->value+symbol->section->vma);
else
fprintf_vma(file, symbol->value+symbol->section->vma);
if (section_code == '?')
{
int type_code = aout_symbol(symbol)->type & 0xff;