https://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112013-08-09T23:28:10ZRuby Issue Tracking SystemRuby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=410442013-08-09T23:28:10Zphasis68 (Heesob Park)phasis@gmail.com
<ul></ul><p>Such a name like :q? or :q! should not be allowed as an attribute of a Struct.</p>
<p>Here is a patch:</p>
<p>diff --git a/struct.c b/struct.c.new<br>
index 60f4ebe..a777ded 100644<br>
--- a/struct.c<br>
+++ b/struct.c.new<br>
@@ -211,6 +211,9 @@ setup_struct(VALUE nstr, VALUE members)<br>
len = RARRAY_LEN(members);<br>
for (i=0; i< len; i++) {<br>
ID id = SYM2ID(ptr_members[i]);</p>
<ul>
<li>
<pre><code> if(rb_is_junk_id(id)) {
</code></pre>
</li>
<li>
<pre><code> rb_name_error(id, "invalid attribute name `%s'", rb_id2name(id));
</code></pre>
</li>
<li>
<pre><code> }
</code></pre>
if (i < N_REF_FUNC) {<br>
rb_define_method_id(nstr, id, ref_func[i], 0);<br>
}</li>
</ul> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=410482013-08-10T00:18:45ZGlass_saga (Masaki Matsushita)glass.saga@gmail.com
<ul><li><strong>Category</strong> set to <i>core</i></li><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li><li><strong>Assignee</strong> set to <i>Glass_saga (Masaki Matsushita)</i></li></ul> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=410572013-08-10T13:53:35Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r42490.<br>
Trent, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<p>parse.y: non-local/const attrset</p>
<ul>
<li>parse.y (rb_id_attrset): allow other than ID_ATTRSET.</li>
<li>parse.y (intern_str): ditto. try stem ID for ID_INSTANCE,<br>
ID_GLOBAL, ID_CLASS, ID_JUNK too. [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: SEGFAULT caused by `p Struct.new(:q?).instance_methods` (Closed)" href="https://redmine.ruby-lang.org/issues/8756">#8756</a>]</li>
</ul> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=436742013-12-14T18:53:09Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Backport</strong> changed from <i>1.9.3: UNKNOWN, 2.0.0: UNKNOWN</i> to <i>1.9.3: DONTNEED, 2.0.0: DONTNEED</i></li></ul><p>r42479, r43083, r43085 seem also needed.</p> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=436752013-12-14T18:53:41Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Backport</strong> changed from <i>1.9.3: DONTNEED, 2.0.0: DONTNEED</i> to <i>1.9.3: DONTNEED, 2.0.0: REQUIRED</i></li></ul> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=450862014-02-11T14:56:49Znagachika (Tomoyuki Chikanaga)nagachika00@gmail.com
<ul><li><strong>Backport</strong> changed from <i>1.9.3: DONTNEED, 2.0.0: REQUIRED</i> to <i>1.9.3: DONTNEED, 2.0.0: DONE</i></li></ul><p>r42479, r42490, r42509, r43083, r43084 and r43085 were backported to ruby_2_0_0 branch at r44911.</p> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=450972014-02-12T14:52:43ZEregon (Benoit Daloze)
<ul></ul><p>See <a href="https://bugs.ruby-lang.org/issues/9248#note-6" class="external">https://bugs.ruby-lang.org/issues/9248#note-6</a></p> Ruby master - Bug #8756: SEGFAULT caused by `p Struct.new(:q?).instance_methods`https://redmine.ruby-lang.org/issues/8756?journal_id=451792014-02-15T14:57:30Znagachika (Tomoyuki Chikanaga)nagachika00@gmail.com
<ul></ul><p>Additionally r44926 was backported ruby_2_0_0 at r44975.</p>