diff options
author | Fred Fish <fnf@specifix.com> | 1992-04-24 01:42:41 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1992-04-24 01:42:41 +0000 |
commit | 55c0061edd2ad838f407b926fb1ce375b3cf208a (patch) | |
tree | 3b282ae7f32a1c46330651bd361dfe72440e1bc0 /bfd/aoutx.h | |
parent | 386b54d606d481560202b55f4936f5cc7dbf32b0 (diff) | |
download | gdb-55c0061edd2ad838f407b926fb1ce375b3cf208a.zip gdb-55c0061edd2ad838f407b926fb1ce375b3cf208a.tar.gz gdb-55c0061edd2ad838f407b926fb1ce375b3cf208a.tar.bz2 |
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.
Diffstat (limited to 'bfd/aoutx.h')
-rw-r--r-- | bfd/aoutx.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 95c1a92..c1b36d4 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -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; |