diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-22 22:44:22 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-22 22:44:22 +0900 |
| commit | abdd006df32aa12bef7f1819edfed3209e379e36 (patch) | |
| tree | afa177b6cdc4d3ea07f345a76c34db6e5ab419e8 /mrbgems/mruby-compiler/core/parse.y | |
| parent | 2d9bf22730d69b0450b47421bc23146e23dc1ebf (diff) | |
| download | mruby-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.y | 9 |
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); |
