aboutsummaryrefslogtreecommitdiff
path: root/opcodes/dis-buf.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-03-23 15:59:45 +0000
committerJoseph Myers <joseph@codesourcery.com>2010-03-23 15:59:45 +0000
commitf66187fdfeacda6177f7f3949fb737683f873f7f (patch)
treeff0717b6870721c6d832f88a1396a1a3bdb15837 /opcodes/dis-buf.c
parent0aec0f33487c703c2b18ce6f53225d9987c876ad (diff)
downloadgdb-f66187fdfeacda6177f7f3949fb737683f873f7f.zip
gdb-f66187fdfeacda6177f7f3949fb737683f873f7f.tar.gz
gdb-f66187fdfeacda6177f7f3949fb737683f873f7f.tar.bz2
* dis-buf.c (buffer_read_memory): Give error for reading just
before the start of memory.
Diffstat (limited to 'opcodes/dis-buf.c')
-rw-r--r--opcodes/dis-buf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/opcodes/dis-buf.c b/opcodes/dis-buf.c
index 7e3fd63..372fb96 100644
--- a/opcodes/dis-buf.c
+++ b/opcodes/dis-buf.c
@@ -1,6 +1,6 @@
/* Disassemble from a buffer, for GNU.
Copyright 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005,
- 2007, 2009 Free Software Foundation, Inc.
+ 2007, 2009, 2010 Free Software Foundation, Inc.
This file is part of the GNU opcodes library.
@@ -38,6 +38,7 @@ buffer_read_memory (bfd_vma memaddr,
unsigned int octets = (memaddr - info->buffer_vma) * opb;
if (memaddr < info->buffer_vma
+ || memaddr - info->buffer_vma > max_addr_offset
|| memaddr - info->buffer_vma + end_addr_offset > max_addr_offset)
/* Out of bounds. Use EIO because GDB uses it. */
return EIO;