mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
5ccee663e9
To avoid buffer overflow when smaller FD_SETSISE is used in ext libraries. * win32/win32.c (rb_w32_fdset): this function is not used anymore. But we leave this for compatibility. * win32/win32.c (rb_w32_select_with_thread): fix SEGV when smaller FD_SETSISE is used in ext libraries. Dereference of fd_set pointer causes SEGV. * test/-ext-/win32/test_fd_setsize.rb(TestFdSetSize): add tests for above. * ext/-test-/win32/fd_setsize/depend: ditto. * ext/-test-/win32/fd_setsize/extconf.rb: ditto. * ext/-test-/win32/fd_setsize/fd_setsize.c: ditto. [ruby-core:44588] [Bug #6352] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
25 lines
706 B
Ruby
25 lines
706 B
Ruby
require 'test/unit'
|
|
require_relative '../../ruby/envutil'
|
|
|
|
module Bug
|
|
module Win32
|
|
class TestFdSetSize < Test::Unit::TestCase
|
|
def test_select_with_unmatched_fd_setsize
|
|
bug6532 = '[ruby-core:44588]'
|
|
assert_in_out_err([], <<-INPUT, %w(:ok), [], bug6532)
|
|
require '-test-/win32/fd_setsize'
|
|
Bug::Win32.test_select
|
|
p :ok
|
|
INPUT
|
|
end
|
|
|
|
def test_fdset_with_unmatched_fd_setsize
|
|
bug6532 = '[ruby-core:44588]'
|
|
assert_in_out_err([], <<-INPUT, %w(:ok), [], bug6532)
|
|
require '-test-/win32/fd_setsize'
|
|
p :ok if Bug::Win32.test_fdset
|
|
INPUT
|
|
end
|
|
end
|
|
end
|
|
end if /mswin|mingw/ =~ RUBY_PLATFORM
|