From 8a608d2b1f6f0f6422d456255f85bf436fa036e5 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 11 Jul 2014 01:09:05 +0000 Subject: pack.c: fix buffer overrun * pack.c (encodes): fix buffer overrun by tail_lf. Thanks to Mamoru Tasaka and Tomas Hoger. [ruby-core:63604] [Bug #10019] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_pack.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby/test_pack.rb') diff --git a/test/ruby/test_pack.rb b/test/ruby/test_pack.rb index 38c1981a44..64d1e68245 100644 --- a/test/ruby/test_pack.rb +++ b/test/ruby/test_pack.rb @@ -550,6 +550,14 @@ EXPECTED assert_equal(["\0"], "AA\n".unpack("m")) assert_equal(["\0"], "AA=\n".unpack("m")) assert_equal(["\0\0"], "AAA\n".unpack("m")) + + bug10019 = '[ruby-core:63604] [Bug #10019]' + size = ((4096-4)/4*3+1) + assert_separately(%W[- #{size} #{bug10019}], <<-'end;') + size = ARGV.shift.to_i + bug = ARGV.shift + assert_equal(size, ["a"*size].pack("m#{size+2}").unpack("m")[0].size, bug) + end; end def test_pack_unpack_m0 -- cgit v1.2.3