summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorBouke van der Bijl <[email protected]>2016-11-28 15:04:27 -0500
committerBouke van der Bijl <[email protected]>2016-12-01 15:23:56 -0500
commit9c61e1cd87aca3646fe39a6d53223efdcb11e250 (patch)
treede00e9593cdaa9ed2277786d864690f662af278b /test
parent2cca9d368815e9c83a7489c40d69937d68cb43a2 (diff)
downloadmruby-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.rb15
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