summaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-12-08 15:21:05 +0000
committerJan Beulich <jbeulich@novell.com>2005-12-08 15:21:05 +0000
commitb3aa39cf8bd79450b113027ceac48a7017ba1fb1 (patch)
tree7c227fe8e76dc5231a599a76c358962a17a09d93 /opcodes
parentae9a907dad8ed093f31cd0a30d273bc36041d147 (diff)
downloadgdb-b3aa39cf8bd79450b113027ceac48a7017ba1fb1.tar.gz
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')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/i386-dis.c13
2 files changed, 13 insertions, 5 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 6b2961eb402..d4a2b41ab05 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2005-12-08 Jan Beulich <jbeulich@novell.com>
+ * i386-dis.c (MAXLEN): Reduce to architectural limit.
+ (fetch_data): Check for sufficient buffer size.
+
+2005-12-08 Jan Beulich <jbeulich@novell.com>
+
* i386-dis.c (OP_ST): Remove prefix in Intel mode.
2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 32293a81026..973682bde21 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