https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112012-05-25T10:41:00ZRuby Issue Tracking SystemBackport193 - Backport #6446: Backport r35595 - Windows: FD_SET and FD_SETSIZE segv due different compilation flagshttps://bugs.ruby-lang.org/issues/6446?journal_id=268152012-05-25T10:41:00Znaruse (Yui NARUSE)naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r35783.<br>
Luis, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<p>merge revision(s) 35595: [Backport <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Backport: Backport r35595 - Windows: FD_SET and FD_SETSIZE segv due different compilation flags (Closed)" href="https://bugs.ruby-lang.org/issues/6446">#6446</a>]</p>
<pre><code>* include/ruby/win32.h (FD_SET): change function to macro.
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.
<a href="/issues/6352">[ruby-core:44588]</a> [Bug #6352]
</code></pre>