Issue #11123 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE

Backported into `ruby_2_2` branch at r50631.

----------------------------------------
Bug #11123: [PATCH] bsock_recmvsg_internal needs GC guard for control buffer
https://bugs.ruby-lang.org/issues/11123#change-52608

* Author: Eric Wong
* Status: Closed
* Priority: Normal
* Assignee: Akira Tanaka
* ruby -v: trunk
* Backport: 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE
----------------------------------------
The control buffer may be used throughout the function, so
prevent the string from being lost to GC.

I'm pretty sure this is correct and we'll need it, I'll commit in a day or two
unless I missed something.  I was planning to introduce new features before
I noticed this bug:

* "exception: false"
* explicit buffer reuse to reduce GC, similar to read_nonblock(num, str)

I also feel 4K buffers are too big for stack and should use heap instead
(as ALLOCV caps stack allocations at 1K)


---Files--------------------------------
0001-ext-socket-ancdata.c-bsock_recvmsg_internal-GC-guard.patch (845 Bytes)
0001-ext-socket-ancdata.c-bsock_recvmsg_internal-GC-guard.patch (845 Bytes)


-- 
https://bugs.ruby-lang.org/