From 3f8b77574a3b670316366084c4066e9f5f2d890b Mon Sep 17 00:00:00 2001 From: Timothy Wall Date: Thu, 3 Feb 2000 18:12:55 +0000 Subject: octets vs bytes changes for binutils --- opcodes/dis-buf.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'opcodes/dis-buf.c') diff --git a/opcodes/dis-buf.c b/opcodes/dis-buf.c index 523fe72789..65b1edb3e6 100644 --- a/opcodes/dis-buf.c +++ b/opcodes/dis-buf.c @@ -29,11 +29,17 @@ buffer_read_memory (memaddr, myaddr, length, info) int length; struct disassemble_info *info; { + int opb = info->octets_per_byte; + int end_addr_offset = length / opb; + int max_addr_offset = info->buffer_length / opb; + int octets = (memaddr - info->buffer_vma) * opb; + if (memaddr < info->buffer_vma - || memaddr - info->buffer_vma + length > info->buffer_length) + || memaddr - info->buffer_vma + end_addr_offset > max_addr_offset) /* Out of bounds. Use EIO because GDB uses it. */ return EIO; - memcpy (myaddr, info->buffer + (memaddr - info->buffer_vma), length); + memcpy (myaddr, info->buffer + octets, length); + return 0; } -- cgit v1.2.1