diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-12-08 15:21:05 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-12-08 15:21:05 +0000 |
commit | 272c92178a38e6a207a4b292301867dcdb294c36 (patch) | |
tree | 79998963f075be08db5efeb85e2baf9b001af097 /opcodes/i386-dis.c | |
parent | 0ba079102f920283bc5cd17805c4ea70f01fe378 (diff) | |
download | gdb-272c92178a38e6a207a4b292301867dcdb294c36.zip gdb-272c92178a38e6a207a4b292301867dcdb294c36.tar.gz gdb-272c92178a38e6a207a4b292301867dcdb294c36.tar.bz2 |
opcodes/
2005-12-08 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (MAXLEN): Reduce to architectural limit.
(fetch_data): Check for sufficient buffer size.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 32293a8..973682b 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -35,7 +35,7 @@ #include "sysdep.h" #include "opintl.h" -#define MAXLEN 20 +#define MAXLEN 15 #include <setjmp.h> @@ -179,10 +179,13 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) struct dis_private *priv = (struct dis_private *) info->private_data; bfd_vma start = priv->insn_start + (priv->max_fetched - priv->the_buffer); - status = (*info->read_memory_func) (start, - priv->max_fetched, - addr - priv->max_fetched, - info); + if (addr <= priv->the_buffer + MAXLEN) + status = (*info->read_memory_func) (start, + priv->max_fetched, + addr - priv->max_fetched, + info); + else + status = -1; if (status != 0) { /* If we did manage to read at least one byte, then |