From: Fernando Nasser Date: Sat, 16 Sep 2000 00:49:37 +0000 (+0000) Subject: 2000-09-15 Fernando Nasser X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=586e589c1894a834bacae360f1a8e9159a7c3291;p=binutils-gdb.git 2000-09-15 Fernando Nasser * varobj.c (varobj_set_value): Call wrapped version of parse_exp_1() to avoid longjumps. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 82bde3efb7b..48a46b9f932 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2000-09-15 Fernando Nasser + + * varobj.c (varobj_set_value): Call wrapped version of + parse_exp_1() to avoid longjumps. + +2000-09-15 Fernando Nasser + + * 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 * ser-unix.c (do_unix_readchar): Prevent infinite read wait to be diff --git a/gdb/varobj.c b/gdb/varobj.c index 5cc6e88d167..9205e9d73ea 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. */