[#111712] [Ruby master Feature#19322] Support spawning "private" child processes — "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>
SXNzdWUgIzE5MzIyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtqdHNhbmFrdHNpZGlzIChLSiBUc2Fu
14 messages
2023/01/07
[ruby-core:111836] [Ruby master Bug#19339] Defining ivar on special constants with @ syntax causes segv
From:
"peterzhu2118 (Peter Zhu) via ruby-core" <ruby-core@...>
Date:
2023-01-16 14:34:41 UTC
List:
ruby-core #111836
Issue #19339 has been updated by peterzhu2118 (Peter Zhu).
Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED
Thank you for reporting this bug. I opened a PR with the fix here: https://github.com/ruby/ruby/pull/7129
----------------------------------------
Bug #19339: Defining ivar on special constants with @ syntax causes segv
https://bugs.ruby-lang.org/issues/19339#change-101247
* Author: luke-gru (Luke Gruber)
* Status: Open
* Priority: Normal
* Backport: 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED
----------------------------------------
```ruby
1.instance_eval do
@a = 1
end
```
There's a missing check at the top of vm_setivar_fastpath, should be:
```c
if (UNLIKELY(RB_SPECIAL_CONST_P(obj))) { // example code: 1.instance_eval { @a = 1 }
rb_check_frozen(obj); // raise FrozenError, because it's always frozen
return Qundef;
}
```
--
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/postorius/lists/ruby-core.ml.ruby-lang.org/