This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] ada: Fix rashes on gdbarch garbage


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;
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]