aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog11
-rw-r--r--gdb/varobj.c5
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 82bde3e..48a46b9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2000-09-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * varobj.c (varobj_set_value): Call wrapped version of
+ parse_exp_1() to avoid longjumps.
+
+2000-09-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * remote.c (putpkt_binary): Call read_frame, not getpkt. Log message.
+ (read_frame): Do not call error() on communication error when
+ reading checksum, but return failure instead and log message.
+
2000-09-15 Fernando Nasser <fnasser@cygnus.com>
* ser-unix.c (do_unix_readchar): Prevent infinite read wait to be
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 5cc6e88..9205e9d 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -781,8 +781,9 @@ varobj_set_value (struct varobj *var, char *expression)
value_ptr temp;
input_radix = 10; /* ALWAYS reset to decimal temporarily */
- /* FIXME: Callee may longjump */
- exp = parse_exp_1 (&s, 0, 0);
+ if (!gdb_parse_exp_1 (&s, 0, 0, &exp))
+ /* We cannot proceed without a well-formed expression. */
+ return 0;
if (!gdb_evaluate_expression (exp, &value))
{
/* We cannot proceed without a valid expression. */