aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-12-11 13:32:25 +1030
committerAlan Modra <amodra@gmail.com>2019-12-11 21:14:19 +1030
commit13c9c48599ebc8ad2f3a1fb9f672740219cd3841 (patch)
treeb304237be09f4f06469122cdcdda658299ebb1ba /bfd/libaout.h
parentMake bfd_get_8 return a bfd_vma like other bfd_get_* functions (diff)
downloadbinutils-gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.tar.gz
binutils-gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.tar.bz2
binutils-gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.zip
bfd signed overflow fixes
Aimed at quietening ubsan. include/ * opcode/mmix.h (PUSHGO_INSN_BYTE): Make unsigned. (GO_INSN_BYTE, SETL_INSN_BYTE, INCML_INSN_BYTE, INCMH_INSN_BYTE), (INCH_INSN_BYTE, SWYM_INSN_BYTE, JMP_INSN_BYTE): Likewise. bfd/ * elf32-rx.c (elf32_rx_relax_section): Avoid signed overflow. * libaout.h (N_SET_INFO, N_SET_FLAGS): Likewise. * netbsd.h (write_object_contents): Likewise. * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Likewise. * libhppa.h (HPPA_R_CONSTANT): Don't signed extend with shifts. (stm32l4xx_create_replacing_stub_vldm): Don't truncate high bits with shifts. * elf32-nds32.h (R_NDS32_RELAX_ENTRY_DISABLE_RELAX_FLAG): Define using 1u shifted left. Ditto for other macros. * mmo.c (LOP): Make unsigned.
Diffstat (limited to 'bfd/libaout.h')
-rw-r--r--bfd/libaout.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/libaout.h b/bfd/libaout.h
index 5b6424c7094..0702ed37132 100644
--- a/bfd/libaout.h
+++ b/bfd/libaout.h
@@ -309,7 +309,7 @@ enum machine_type
# define N_SET_INFO(execp, magic, type, flags) \
((execp)->a_info = ((magic) & 0xffff) \
| (((int)(type) & 0xff) << 16) \
- | (((flags) & 0xff) << 24))
+ | (((flags) & 0xffu) << 24))
#endif
#ifndef N_SET_DYNAMIC
@@ -332,7 +332,7 @@ enum machine_type
#ifndef N_SET_FLAGS
# define N_SET_FLAGS(execp, flags) \
((execp)->a_info = \
- ((execp)->a_info & 0x00ffffff) | (((flags) & 0xff) << 24))
+ ((execp)->a_info & 0x00ffffff) | (((flags) & 0xffu) << 24))
#endif
typedef struct aout_symbol