Avoid Heap Overflow in `heredoc_remove_indent`; fix #5316

parent 810d13da
...@@ -4693,7 +4693,8 @@ heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf) ...@@ -4693,7 +4693,8 @@ heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf)
escaped = escaped->cdr; escaped = escaped->cdr;
nspaces = nspaces->cdr; nspaces = nspaces->cdr;
} }
newstr[newlen] = '\0'; if (newlen < len)
newstr[newlen] = '\0';
pair->car = (node*)newstr; pair->car = (node*)newstr;
pair->cdr = (node*)newlen; pair->cdr = (node*)newlen;
} else { } else {
......
...@@ -10729,7 +10729,8 @@ heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf) ...@@ -10729,7 +10729,8 @@ heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf)
escaped = escaped->cdr; escaped = escaped->cdr;
nspaces = nspaces->cdr; nspaces = nspaces->cdr;
} }
newstr[newlen] = '\0'; if (newlen < len)
newstr[newlen] = '\0';
pair->car = (node*)newstr; pair->car = (node*)newstr;
pair->cdr = (node*)newlen; pair->cdr = (node*)newlen;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment