diff options
author | Fernando Nasser <fnasser@redhat.com> | 2000-09-16 00:49:37 +0000 |
---|---|---|
committer | Fernando Nasser <fnasser@redhat.com> | 2000-09-16 00:49:37 +0000 |
commit | 586e589c1894a834bacae360f1a8e9159a7c3291 (patch) | |
tree | d3351e7cc9cf93e817dbb270a7e0a6b6069364a4 /gdb | |
parent | 3943c96b075b8584c9d9417c319371394b928bd6 (diff) | |
download | gdb-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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/varobj.c | 5 |
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. */ |