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.
This commit is contained in:
Michael Snyder 2002-01-08 02:04:12 +00:00
parent 21c1c9207f
commit d33fc4e447
1 changed files with 3 additions and 0 deletions

View File

@ -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 ();