[patch] ada: Fix rashes on gdbarch garbage
Joel Brobecker
brobecker@adacore.com
Mon Mar 21 15:06:00 GMT 2011
Hi Jan,
Thanks for the investigative work!
> gdb/
> 2011-03-20 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * ada-lang.c (replace_operator_with_call): Copy also GDBARCH.
This change looks definitely correct to me, so I've checked it in.
It's strange that I am not able to reproduce it, even after I changed
the xmalloc to xzalloc...
To prevent any further fields from being undefined, I have also
checked the following patch in.
gdb/ChangeLog:
* ada-lang.c (replace_operator_with_call): Use xzalloc instead
of xmalloc.
Tested on x86_64-linux.
--
Joel
commit 6cb8c1c196651db26b01653b688547a203089162
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Mar 21 07:36:17 2011 -0700
use xzalloc in ada-lang.c:replace_operator_with_call
This is to make sure that we cannot have a field with an undefined
value (currently, we are not setting the gdbarch).
gdb/ChangeLog:
* ada-lang.c (replace_operator_with_call): Use xzalloc instead
of xmalloc.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 64d8391..d79197e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-21 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (replace_operator_with_call): Use xzalloc instead
+ of xmalloc.
+
2012-03-18 Pedro Alves <pedro@codesourcery.com>
* frame.c (frame_unwind_register): Throw an error if unwinding the
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 3746edc..93711cf 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -3659,7 +3659,7 @@ replace_operator_with_call (struct expression **expp, int pc, int nargs,
/* A new expression, with 6 more elements (3 for funcall, 4 for function
symbol, -oplen for operator being replaced). */
struct expression *newexp = (struct expression *)
- xmalloc (sizeof (struct expression)
+ xzalloc (sizeof (struct expression)
+ EXP_ELEM_TO_BYTES ((*expp)->nelts + 7 - oplen));
struct expression *exp = *expp;
More information about the Gdb-patches
mailing list