diff options
author | Nick Clifton <nickc@redhat.com> | 2019-10-28 16:45:55 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2019-10-28 16:45:55 +0000 |
commit | 1ee3542c0a3830cac933ae56cc5f29e9c3f7c6ca (patch) | |
tree | 49bbee946b943145c67ba8dfdf6fe45f200c1bbb | |
parent | bbf9a0b5eef3599a1c6a7a3bea40da9f2c37df83 (diff) | |
download | gdb-1ee3542c0a3830cac933ae56cc5f29e9c3f7c6ca.zip gdb-1ee3542c0a3830cac933ae56cc5f29e9c3f7c6ca.tar.gz gdb-1ee3542c0a3830cac933ae56cc5f29e9c3f7c6ca.tar.bz2 |
Fix potentially illegal shift and assign operation in CSKY disassembler.
* csky-dis.c (csky_chars_to_number): Check for a negative
count. Use an unsigned integer to construct the return value.
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/csky-dis.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 8489b40..5f5a6c8 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,10 @@ 2019-10-28 Nick Clifton <nickc@redhat.com> + * csky-dis.c (csky_chars_to_number): Check for a negative + count. Use an unsigned integer to construct the return value. + +2019-10-28 Nick Clifton <nickc@redhat.com> + * tic30-dis.c (OPERAND_BUFFER_LEN): Define. Use as length of operand buffer. Set value to 15 not 13. (get_register_operand): Use OPERAND_BUFFER_LEN. diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c index efd1f75..ffdb596 100644 --- a/opcodes/csky-dis.c +++ b/opcodes/csky-dis.c @@ -134,10 +134,10 @@ csky_get_mask (struct csky_opcode_info const *pinfo) static unsigned int csky_chars_to_number (unsigned char * buf, int n) { - if (n == 0) + if (n <= 0) abort (); int i; - int val = 0; + unsigned int val = 0; if (dis_info.info->endian == BFD_ENDIAN_BIG) while (n--) |