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");