aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-nat.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2002-01-08 02:04:12 +0000
committerMichael Snyder <msnyder@vmware.com>2002-01-08 02:04:12 +0000
commitd33fc4e447bc1a277ab1e49b7a7d39e07f01f33e (patch)
tree881d947f95d35a05a42ddc95d3d4dac9271bdae1 /gdb/rs6000-nat.c
parent21c1c9207f4f68fd7a2a2b3e29595af7be75c64a (diff)
downloadgdb-d33fc4e447bc1a277ab1e49b7a7d39e07f01f33e.zip
gdb-d33fc4e447bc1a277ab1e49b7a7d39e07f01f33e.tar.gz
gdb-d33fc4e447bc1a277ab1e49b7a7d39e07f01f33e.tar.bz2
2002-01-07 Michael Snyder <msnyder@redhat.com>
* infptrace.c (GDB_MAX_ALLOCA): New define. (child_xfer_memory): Use xmalloc/xfree instead of alloca if the size of the buffer exceeds GDB_MAX_ALLOCA (default 1 megabyte, can be overridden with whatever value is appropriate to the host). * infttrace.c (child_xfer_memory): Add FIXME warning about use of alloca to allocate potentially large buffer. * rs6000-nat.c (child_xfer_memory): Ditto. * symm-nat.c (child_xfer_memory): Ditto. * x86-64-linux-nat.c (child_xfer_memory): Ditto.
Diffstat (limited to 'gdb/rs6000-nat.c')
-rw-r--r--gdb/rs6000-nat.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c
index 12229cd..94daaff 100644
--- a/gdb/rs6000-nat.c
+++ b/gdb/rs6000-nat.c
@@ -407,6 +407,9 @@ child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len,
/ sizeof (int);
/* Allocate word transfer buffer. */
+ /* FIXME (alloca): This code, cloned from infptrace.c, is unsafe
+ because it uses alloca to allocate a buffer of arbitrary size.
+ For very large xfers, this could crash GDB's stack. */
int *buf = (int *) alloca (count * sizeof (int));
int arch64 = ARCH64 ();