<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/io_buffer.c, branch v3_4_9</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) 61bab1889048f758396acf671c9797d6bc52504b: [Backport #21757]</title>
<updated>2026-01-25T07:41:13+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T07:41:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=28db1b5c3d3a9a5c60762622cb0c3c36c021e8e4'/>
<id>28db1b5c3d3a9a5c60762622cb0c3c36c021e8e4</id>
<content type='text'>
	[PATCH] Rename to `struct rbimpl_size_overflow_tag`

	This struct is used for addition not only for multiplication, so
	remove the word `mul`, and make the member names more descriptive.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] Rename to `struct rbimpl_size_overflow_tag`

	This struct is used for addition not only for multiplication, so
	remove the word `mul`, and make the member names more descriptive.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f430fbbfacea5690d790dd9060ca4118431fc2fb, c353b625297162024b5a80480664e599dd49a294: [Backport #21787]</title>
<updated>2026-01-25T07:37:10+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T07:37:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=45100545b056792fb5701a93abd1f78259a6224e'/>
<id>45100545b056792fb5701a93abd1f78259a6224e</id>
<content type='text'>
	[PATCH] IO::Buffer: Fill the test for `IO::Buffer#clear`

	[PATCH] [Bug #21787] IO::Buffer: Check addition overflows

	https://hackerone.com/reports/3437743
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] IO::Buffer: Fill the test for `IO::Buffer#clear`

	[PATCH] [Bug #21787] IO::Buffer: Check addition overflows

	https://hackerone.com/reports/3437743
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20933] Fix IO::Buffer overlap calculation</title>
<updated>2024-12-09T16:52:02+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-06T20:08:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7341a4fc07ec8f12ff25538d39383ecf68a5f852'/>
<id>7341a4fc07ec8f12ff25538d39383ecf68a5f852</id>
<content type='text'>
The allocated buffers may be consecutive memory addresses. This will mean
that `b-&gt;base == a-&gt;base + a-&gt;size` even though `a` and `b` are separate
buffers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The allocated buffers may be consecutive memory addresses. This will mean
that `b-&gt;base == a-&gt;base + a-&gt;size` even though `a` and `b` are separate
buffers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Annotate anonymous mmap</title>
<updated>2024-11-21T18:48:05+00:00</updated>
<author>
<name>Kunshan Wang</name>
<email>wks1986@gmail.com</email>
</author>
<published>2024-11-19T08:07:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8ae7c22972d82b14d7308e16c26389fa4412727f'/>
<id>8ae7c22972d82b14d7308e16c26389fa4412727f</id>
<content type='text'>
Use PR_SET_VMA_ANON_NAME to set human-readable names for anonymous
virtual memory areas mapped by `mmap()` when compiled and run on Linux
5.17 or higher.  This makes it convenient for developers to debug mmap.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use PR_SET_VMA_ANON_NAME to set human-readable names for anonymous
virtual memory areas mapped by `mmap()` when compiled and run on Linux
5.17 or higher.  This makes it convenient for developers to debug mmap.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow `io_buffer_memmove` to release the GVL for large buffers. (#12021)</title>
<updated>2024-11-20T08:27:16+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2024-11-20T08:27:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3c0b09ac9e9afe5a8a536ac3c27c9202bcebc25c'/>
<id>3c0b09ac9e9afe5a8a536ac3c27c9202bcebc25c</id>
<content type='text'>
[Feature #20902]</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #20902]</pre>
</div>
</content>
</entry>
<entry>
<title>io_buffer.c: Allow copies between overlapping buffers with #copy and #set_string (#11640)</title>
<updated>2024-11-06T20:55:39+00:00</updated>
<author>
<name>Kasumi Hanazuki</name>
<email>kasumi@rollingapple.net</email>
</author>
<published>2024-11-06T20:55:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=35bf6603372360c7680653328274a670fa1d9f38'/>
<id>35bf6603372360c7680653328274a670fa1d9f38</id>
<content type='text'>
The current implementation of `IO::Buffer#copy` and `#set_string` has
an undefined behavior when the source and destination memory overlaps,
due to the underlying use of the `memcpy` C function.

This patch guarantees the methods to be safe even when copying between
overlapping buffers by replacing `memcpy` with `memmove`,

Fixes: [Bug #20745]</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current implementation of `IO::Buffer#copy` and `#set_string` has
an undefined behavior when the source and destination memory overlaps,
due to the underlying use of the `memcpy` C function.

This patch guarantees the methods to be safe even when copying between
overlapping buffers by replacing `memcpy` with `memmove`,

Fixes: [Bug #20745]</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce `rb_io_blocking_region` which takes `struct rb_io` argument. (#11795)</title>
<updated>2024-10-05T02:10:12+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2024-10-05T02:10:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c50298d7d4f8797963490f5679b1c481b89d4955'/>
<id>c50298d7d4f8797963490f5679b1c481b89d4955</id>
<content type='text'>
This does not change any actual behaviour, but provides a choke point for blocking IO operations.

* Update `IO::Buffer` to use `rb_io_blocking_region`.

* Update `File` to use `rb_io_blocking_region`.

* Update `IO` to use `rb_io_blocking_region`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This does not change any actual behaviour, but provides a choke point for blocking IO operations.

* Update `IO::Buffer` to use `rb_io_blocking_region`.

* Update `File` to use `rb_io_blocking_region`.

* Update `IO` to use `rb_io_blocking_region`.</pre>
</div>
</content>
</entry>
<entry>
<title>Update `IO::Buffer` documentation. (#11737)</title>
<updated>2024-10-03T02:33:48+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2024-10-03T02:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=75c4ac3395f609cad55a0e30a59d61ecfd092952'/>
<id>75c4ac3395f609cad55a0e30a59d61ecfd092952</id>
<content type='text'>
Update documentation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update documentation.</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20755] Frozen string should not be writable via IO::Buffer</title>
<updated>2024-10-01T09:46:35+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-09-30T13:49:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=35e124832e29b65c84d4e0e4e434616859f9bdf5'/>
<id>35e124832e29b65c84d4e0e4e434616859f9bdf5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20752] Slice of readonly `IO::Buffer` also should be readonly</title>
<updated>2024-09-30T11:39:14+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-09-30T07:24:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=637067440f74043c6d79fc649ab8acf1afea25a5'/>
<id>637067440f74043c6d79fc649ab8acf1afea25a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
