Actions
Bug #14204
closed[PATCH] socket: use frozen string buffer when releasing GVL
Description
socket: use frozen string buffer when releasing GVL
Using a non-frozen string buffer when GVL is released is
dangerous because another thread may modify that buffer.
This may lead to the contents of an invalid pointer being
written to the socket.
Follow the lead used with core io.c methods and duplicate
the string to a temporary frozen buffer before writing.
* ext/socket/ancdata.c (bsock_sendmsg_internal): use
rb_str_tmp_frozen_{acquire/release} as with IO#write
* internal.h (rb_str_tmp_frozen_acquire): export
(rb_str_tmp_frozen_release): export
related to [Bug #14195]
Files
Updated by akr (Akira Tanaka) about 5 years ago
- Status changed from Open to Closed
Applied in changeset git|4900a10689036211da79c8189ff7eba11c8c81ee.
socket: use frozen string buffer when releasing GVL
Thanks for the patch by normalperson (Eric Wong) [Bug #14204].
Actions
Like0
Like0