[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 21/22] disas: cris: Fix 0 buffer length case
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL v2 21/22] disas: cris: Fix 0 buffer length case |
Date: |
Tue, 7 Jul 2015 19:16:28 +0200 |
From: Peter Crosthwaite <address@hidden>
Cris has the complication of variable length instructions and has
a check in place to clamp memory reads in case the disas request
doesn't have enough bytes for the instruction being disas'd. This
breaks down in the case where disassembling for the monitor where
the buffer length is defaulted to 0.
The buffer length should never be zero for a regular target_disas,
so we can safely assume the 0 case is for the monitor in which case
consider the buffer length to be the max for cris instructions.
Reviewed-by: Edgar E. Iglesias <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
disas/cris.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/disas/cris.c b/disas/cris.c
index e6cff7a..1b76a09 100644
--- a/disas/cris.c
+++ b/disas/cris.c
@@ -2575,9 +2575,9 @@ print_insn_cris_generic (bfd_vma memaddr,
If we can't get any data, or we do not get enough data, we print
the error message. */
- nbytes = info->buffer_length;
- if (nbytes > MAX_BYTES_PER_CRIS_INSN)
- nbytes = MAX_BYTES_PER_CRIS_INSN;
+ nbytes = info->buffer_length ? info->buffer_length
+ : MAX_BYTES_PER_CRIS_INSN;
+ nbytes = MIN(nbytes, MAX_BYTES_PER_CRIS_INSN);
status = (*info->read_memory_func) (memaddr, buffer, nbytes, info);
/* If we did not get all we asked for, then clear the rest.
--
2.1.4
- [Qemu-devel] [PULL v2 00/22] QOM CPUState patch queue 2015-07-07, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 02/22] cpu: Initialize breakpoint/watchpoint lists in cpu_common_initfn(), Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 03/22] cpu: Reorder cpu->as, cpu->thread_id, cpu->memory_dispatch init, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 08/22] gdbstub: Change gdbserver_fork() to accept cpu instead of env, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 09/22] cpu: Change tcg_cpu_exec() arg to cpu, not env, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 14/22] hw/arm/boot: Use cpu_set_pc(), Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 06/22] target-ppc: Move cpu_exec_init() call to realize function, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 05/22] cpu: Convert cpu_index into a bitmap, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 15/22] microblaze: boot: Use cpu_set_pc(), Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 13/22] gdbstub: Use cpu_set_pc() helper, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 21/22] disas: cris: Fix 0 buffer length case,
Andreas Färber <=
- [Qemu-devel] [PULL v2 20/22] disas: microblaze: QOMify target specific disas setup, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 22/22] disas: cris: QOMify target specific disas setup, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 18/22] disas: arm-a64: Make printfer and stream variable, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 07/22] translate-all: Change tb_flush() env argument to cpu, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 19/22] disas: arm: QOMify target specific disas setup, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 17/22] disas: QOMify target specific setup, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 01/22] cpu: No need to zero-initialize CPUState::numa_node, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 16/22] disas: Add print_insn to disassemble info, Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 04/22] cpu: Add Error argument to cpu_exec_init(), Andreas Färber, 2015/07/07
- [Qemu-devel] [PULL v2 10/22] cpu: Change cpu_exec_init() arg to cpu, not env, Andreas Färber, 2015/07/07