summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/y.tab.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-02-03 13:04:32 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-02-03 13:06:13 +0900
commitc43dd75ea9e2b2f3387e40617d4f4cd86d3841dc (patch)
treed131dc6a28804a2730147762f8f2b20313f8906c /mrbgems/mruby-compiler/core/y.tab.c
parent810d13dacdd4cdf6ce55de85266f3ac26da520ef (diff)
downloadmruby-c43dd75ea9e2b2f3387e40617d4f4cd86d3841dc.tar.gz
mruby-c43dd75ea9e2b2f3387e40617d4f4cd86d3841dc.zip
Avoid Heap Overflow in `heredoc_remove_indent`; fix #5316
Diffstat (limited to 'mrbgems/mruby-compiler/core/y.tab.c')
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
index 9a53bf326..6c7940a7b 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -10729,7 +10729,8 @@ heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf)
escaped = escaped->cdr;
nspaces = nspaces->cdr;
}
- newstr[newlen] = '\0';
+ if (newlen < len)
+ newstr[newlen] = '\0';
pair->car = (node*)newstr;
pair->cdr = (node*)newlen;
} else {