From 3ece54fb9446d7c8ed2a796ebf26bfedae58f15c Mon Sep 17 00:00:00 2001 From: rlar Date: Thu, 2 Jun 2011 19:34:47 +0000 Subject: [PATCH] bug fix, avoid segfault when indexing a vector with a nonexistant variable --- ChangeLog | 5 +++++ src/frontend/com_let.c | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9c56c82e8..b27806f9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-06-02 Robert Larice + * src/frontend/com_let.c : + bug fix, avoid segfault when indexing a vector with a nonexistant variable + let foo = thing[nonsuchthing] + 2011-06-02 Robert Larice * src/frontend/postcoms.c : bug fix, avoid $curplot (plot_names) being assembled from negative numbers diff --git a/src/frontend/com_let.c b/src/frontend/com_let.c index bd41a127d..b3fb2b141 100644 --- a/src/frontend/com_let.c +++ b/src/frontend/com_let.c @@ -79,8 +79,18 @@ com_let(wordlist *wl) /* va, indexing */ fake_wl.wl_word = s; nn = ft_getpnames(&fake_wl, TRUE); + if (!nn) { + /* XXX error message */ + tfree(p); + return; + } t = ft_evaluate(nn); - + if (!t) { + fprintf(cp_err, "Error: Can't evaluate %s\n", s); + free_pnode(nn); + tfree(p); + return; + } if (!isreal(t) || t->v_link2 || t->v_length != 1 || !t->v_realdata) { fprintf(cp_err, "Error: index is not a scalar.\n");