Re: [PATCH PR gdb/15236] gdbserver write to linux memory with zero length corrupts stack

Jeremy Bennett
2013-03-07T08:52:28Z

On Wed, 2013-03-06 at 19:06 +0000, Pedro Alves wrote:
> Hi Jeremy,
>
> Thanks for the diagnosis and the patch.

Pedro, thanks for the comments. I've revised the patch accordingly.
Since I don't have write permission, would you commit it for me. Here is
the corrected ChangeLog entry:

2013-03-07 Jeremy Bennett <jeremy.bennett@embecosm.com>

PR gdb/15236
* linux-low.c (linux_write_memory): Return early success if LEN is
zero.

Here is the corrected patch:

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index a8cf78c..d7202fd 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,9 @@
+2013-03-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
+
+ PR gdb/15236
+ * linux-low.c (linux_write_memory): Return early success if LEN is
+ zero.
+
2013-03-05 Corinna Vinschen <vinschen@redhat.de>

* configure.srv: Add x86_64-*-cygwin* as target.
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index c52cd2e..8eb5dac 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -4481,7 +4481,7 @@ linux_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)

/* Copy LEN bytes of data from debugger memory at MYADDR to inferior's
memory at MEMADDR. On failure (cannot write to the inferior)
- returns the value of errno. */
+ returns the value of errno. Succeeds immediately if LEN is zero. */