drd: Fix stack growth tracking. Hopefully this is the proper fix for #297147.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13316 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_main.c b/drd/drd_main.c
index 92c0f79..358ec83 100644
--- a/drd/drd_main.c
+++ b/drd/drd_main.c
@@ -580,8 +580,8 @@
  * Callback function called by the Valgrind core before a stack area is
  * being used by a signal handler.
  *
- * @param[in] a   Start of address range.
- * @param[in] len Address range length.
+ * @param[in] a   Start of address range - VG_STACK_REDZONE_SZB.
+ * @param[in] len Address range length + VG_STACK_REDZONE_SZB.
  * @param[in] tid Valgrind thread ID for whom the signal frame is being
  *                constructed.
  */
@@ -589,12 +589,14 @@
                                              ThreadId tid)
 {
    DRD_(thread_set_vg_running_tid)(VG_(get_running_tid)());
-   drd_start_using_mem(a, len, True);
+   drd_start_using_mem(a + VG_STACK_REDZONE_SZB, len - VG_STACK_REDZONE_SZB,
+                       True);
 }
 
 static void drd_stop_using_mem_stack_signal(Addr a, SizeT len)
 {
-   drd_stop_using_mem(a, len, True);
+   drd_stop_using_mem(a + VG_STACK_REDZONE_SZB, len - VG_STACK_REDZONE_SZB,
+                      True);
 }
 
 static