summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/parse.y
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-22 22:44:22 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-11-22 22:44:22 +0900
commitabdd006df32aa12bef7f1819edfed3209e379e36 (patch)
treeafa177b6cdc4d3ea07f345a76c34db6e5ab419e8 /mrbgems/mruby-compiler/core/parse.y
parent2d9bf22730d69b0450b47421bc23146e23dc1ebf (diff)
downloadmruby-abdd006df32aa12bef7f1819edfed3209e379e36.tar.gz
mruby-abdd006df32aa12bef7f1819edfed3209e379e36.zip
Strictly speaking `NULL + 0` is a undefined behavior; ref #5157
Diffstat (limited to 'mrbgems/mruby-compiler/core/parse.y')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y9
1 files changed, 7 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index ab04e1d6b..06d616f58 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -6528,8 +6528,13 @@ mrb_parse_file_continue(mrb_state *mrb, FILE *f, const void *prebuf, size_t preb
p = mrb_parser_new(mrb);
if (!p) return NULL;
- p->s = (const char *)prebuf;
- p->send = (const char *)prebuf + prebufsize;
+ if (prebuf) {
+ p->s = (const char *)prebuf;
+ p->send = (const char *)prebuf + prebufsize;
+ }
+ else {
+ p->s = p->send = NULL;
+ }
p->f = f;
mrb_parser_parse(p, c);