diff options
| author | Bouke van der Bijl <[email protected]> | 2016-11-28 15:04:27 -0500 |
|---|---|---|
| committer | Bouke van der Bijl <[email protected]> | 2016-12-01 15:23:56 -0500 |
| commit | 9c61e1cd87aca3646fe39a6d53223efdcb11e250 (patch) | |
| tree | de00e9593cdaa9ed2277786d864690f662af278b /test | |
| parent | 2cca9d368815e9c83a7489c40d69937d68cb43a2 (diff) | |
| download | mruby-9c61e1cd87aca3646fe39a6d53223efdcb11e250.tar.gz mruby-9c61e1cd87aca3646fe39a6d53223efdcb11e250.zip | |
Use mrb_ptr instead of mrb_cptr in Kernel#to_s
This is to avoid segfault when WORD_BOXING is enabled
Reported by https://hackerone.com/brakhane
Diffstat (limited to 'test')
| -rw-r--r-- | test/t/kernel.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/t/kernel.rb b/test/t/kernel.rb index d240e59dc..e59bd6a10 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -520,6 +520,21 @@ assert('Kernel#to_s', '15.3.1.3.46') do assert_equal to_s.class, String end +assert('Kernel#to_s on primitives') do + begin + Fixnum.alias_method :to_s_, :to_s + Fixnum.remove_method :to_s + + assert_nothing_raised do + # segfaults if mrb_cptr is used + 1.to_s + end + ensure + Fixnum.alias_method :to_s, :to_s_ + Fixnum.remove_method :to_s_ + end +end + assert('Kernel.local_variables', '15.3.1.2.7') do a, b = 0, 1 a += b |
