From fc90f7a666da0b1634797d8596e8fdd4bbeba956 Mon Sep 17 00:00:00 2001 From: Ori Bernstein Date: Mon, 9 Mar 2020 14:24:02 -0700 Subject: fix heredoc crash we emitted an error on heredoc tags, but we continued on, and added a heredoc entry to the list, with a tag that we couldn't handle. when processing this heredoc, rc would segfault. fix: don't add a heredoc to the list on error. --- sys/src/cmd/rc/here.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/src/cmd/rc/here.c b/sys/src/cmd/rc/here.c index 922911f80..3ee8d6395 100644 --- a/sys/src/cmd/rc/here.c +++ b/sys/src/cmd/rc/here.c @@ -22,9 +22,13 @@ hexnum(char *p, int n) tree* heredoc(tree *tag) { - struct here *h = new(struct here); - if(tag->type!=WORD) + struct here *h; + + if(tag->type!=WORD){ yyerror("Bad here tag"); + return nil; + } + h = new(struct here); h->next = 0; if(here) *ehere = h; -- cgit v1.2.3