aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFernando Nasser <fnasser@redhat.com>2000-09-16 00:49:37 +0000
committerFernando Nasser <fnasser@redhat.com>2000-09-16 00:49:37 +0000
commit586e589c1894a834bacae360f1a8e9159a7c3291 (patch)
treed3351e7cc9cf93e817dbb270a7e0a6b6069364a4
parent3943c96b075b8584c9d9417c319371394b928bd6 (diff)
downloadgdb-586e589c1894a834bacae360f1a8e9159a7c3291.zip
gdb-586e589c1894a834bacae360f1a8e9159a7c3291.tar.gz
gdb-586e589c1894a834bacae360f1a8e9159a7c3291.tar.bz2
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.
-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. */