From: "nagachika (Tomoyuki Chikanaga) via ruby-core" <ruby-core@...>
Date: 2024-10-21T08:50:15+00:00
Subject: [ruby-core:119543] [Ruby master Bug#20752] IO::Buffer#slice creates mutable IO::Buffer instance that points to readonly memory (e.g. fronzen String)

Issue #20752 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 3.1: REQUIRED, 3.2: REQUIRED, 3.3: REQUIRED to 3.1: REQUIRED, 3.2: DONE, 3.3: REQUIRED

ruby_3_2 commit:5777fe5ab57d6479326bdb21ef9a6b88ea1516dc merged revision(s) commit:637067440f74043c6d79fc649ab8acf1afea25a5.

----------------------------------------
Bug #20752: IO::Buffer#slice creates mutable IO::Buffer instance that points to readonly memory (e.g. fronzen String)
https://bugs.ruby-lang.org/issues/20752#change-110159

* Author: hanazuki (Kasumi Hanazuki)
* Status: Closed
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.4.0dev (2024-09-18T02:16:22Z master 4797b0704a) +PRISM [x86_64-linux]
* Backport: 3.1: REQUIRED, 3.2: DONE, 3.3: REQUIRED
----------------------------------------
```irb
irb(main):001> RUBY_DESCRIPTION.frozen?
=> true
irb(main):002> IO::Buffer.for(RUBY_DESCRIPTION).set_string('perl', 0, 4)
(irb):2:in 'IO::Buffer#set_string': Buffer is not writable! (IO::Buffer::AccessError)
        from (irb):2:in '<main>'
        from <internal:kernel>:191:in 'Kernel#loop'
        from -e:1:in '<main>'
irb(main):003> IO::Buffer.for(RUBY_DESCRIPTION).slice.set_string('perl', 0, 4)
=> 4
irb(main):004> RUBY_DESCRIPTION
=> "perl 3.4.0dev (2024-09-18T02:16:22Z master 4797b0704a) +PRISM [x86_64-linux]"
```

```irb
irb(main):001> IO::Buffer.for(NameError.name).slice.set_string('X', 0, 1)
=> 1
irb(main):002> NameError
(irb):2:in '<main>': uninitialized constant NameError (XameError)
        from <internal:kernel>:191:in 'Kernel#loop'
        from -e:1:in '<main>'
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/