hanazuki (Kasumi Hanazuki)
- Login: hanazuki
- Registered on: 11/21/2017
- Last sign in: 08/30/2026
Issues
| open | closed | Total | |
|---|---|---|---|
| Assigned issues | 0 | 0 | 0 |
| Reported issues | 1 | 17 | 18 |
Activity
09/12/2026
-
07:48 AM Ruby Revision ae5a02b0 (git): Free temporary `IO::Buffer` objects when I/O hooks raise. (#18666)
09/08/2026
-
06:42 AM Ruby Bug #22298: IO::Buffer is left unfreed with an invalid pointer when fiber scheduler raises
- patch: https://github.com/ruby/ruby/pull/18666
-
06:39 AM Ruby Bug #22298 (Closed): IO::Buffer is left unfreed with an invalid pointer when fiber scheduler raises
- When an installed Fiber scheduler raises from its I/O hook, the temporary IO::Buffer passed to the hook is left unfreed. The buffer may then outlive the memory it wraps, so accessing it afterward can cause undefined behavior.
This onl...
06/26/2026
-
09:29 PM Ruby Revision 2bf4c08b (git): IO::Buffer#locked: Release lock even when the block raises (#16180)
- IO::Buffer#locked: Release lock even when the block raises/breaks
Previously, `IO::Buffer#locked` leaks the lock when the block raises
an exception, or breaks.
Fixes: [Bug #21882]
06/23/2026
-
10:23 AM Ruby Bug #22125 (Closed): IO::Buffer triggers use-after-free when it's freed/resized during enumeration
- The block passed to `IO::Buffer#each` can free or resize the receiver (or its parent buffer when the reciver is a slice), which invalidates the memory region being iterated. The next iteration causes use-after-free.
repro:
```
./m...
02/20/2026
-
01:57 AM Ruby Bug #21882 (Closed): IO::Buffer#locked leaves the buffer locked when the block raises
- Applied in changeset commit:git|b5ccab2093c9bb19ae8564a935e6fd72ec7354cc.
----------
IO::Buffer#locked: Release lock even when the block raises (#16180)
IO::Buffer#locked: Release lock even when the block raises/breaks
Previously, `IO... -
01:56 AM Ruby Revision b5ccab20 (git): IO::Buffer#locked: Release lock even when the block raises (#16180)
- IO::Buffer#locked: Release lock even when the block raises/breaks
Previously, `IO::Buffer#locked` leaks the lock when the block raises
an exception, or breaks.
Fixes: [Bug #21882]
02/16/2026
-
06:07 AM Ruby Bug #21883 (Closed): IO::Buffer can be unlocked and freed by another thread during syscall
- ```ruby
# Assume this file is on a very slow device such as NFS.
io = File.open('/mnt/slowfs/slow')
buf = IO::Buffer.new(100)
t1 = Thread.new do
buf.locked do
sleep 0.5
end
buf.free
end
t2 = Thread.new do
b... -
04:24 AM Ruby Bug #21882: IO::Buffer#locked leaves the buffer locked when the block raises
- Thank you for your review, nobu. I added test cases for break and throw.
02/15/2026
-
04:44 PM Ruby Bug #21882: IO::Buffer#locked leaves the buffer locked when the block raises
- Patch: https://github.com/ruby/ruby/pull/16180