From 5342dbf00bd87099a15e90d5375d44dff81493ac Mon Sep 17 00:00:00 2001 From: yui-knk Date: Sat, 14 Oct 2023 10:57:47 +0900 Subject: [PATCH] Check node type before accessing nd_next This is also a preparation for removing not_used members from STR NODE. Current codes work without node type check because NODE_STR has not_used2 member corresponding to nd_next of NODE_LIST and NODE_DSTR. However it causes problme once not_used members are removed from NODE_STR. --- parse.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parse.y b/parse.y index 09356ce596..0375f0b1d4 100644 --- a/parse.y +++ b/parse.y @@ -8830,7 +8830,7 @@ heredoc_dedent(struct parser_params *p, NODE *root) } str_node = 0; - while ((node = RNODE_LIST(prev_node = node)->nd_next) != 0) { + while ((nd_type_p(node, NODE_LIST) || nd_type_p(node, NODE_DSTR)) && (node = RNODE_LIST(prev_node = node)->nd_next) != 0) { next_str: if (!nd_type_p(node, NODE_LIST)) break; if ((str_node = RNODE_LIST(node)->nd_head) != 0) {