[#11073] segfault printing instruction sequence for iterator — <noreply@...>
Bugs item #10527, was opened at 2007-05-02 14:42
Hi,
On Thu, May 10, 2007 at 04:51:18PM +0900, Nobuyoshi Nakada wrote:
Hi,
Hi,
This seems to make valgrind much happier.
On Thu, May 17, 2007 at 11:14:35PM +0900, Paul Brannan wrote:
Hi,
Now 'a' shows up twice in the local table:
Hi,
[#11082] Understanding code: Kernel#require and blocks. — Hugh Sasse <hgs@...>
I'm trying to debug a Rails application which complains about an
On 5/4/07, Hugh Sasse <hgs@dmu.ac.uk> wrote:
On Fri, 4 May 2007, George wrote:
On Fri, May 04, 2007 at 06:18:19PM +0900, Hugh Sasse wrote:
[#11108] pattern for implementation-private constants? — David Flanagan <david@...>
Hi,
I believe there isn't a way, but I don't think it's really necessary. Just
[#11127] Bugs that can be closed — "Jano Svitok" <jan.svitok@...>
I propose closing these bugs as invalid:
[#11145] Rational comparison to 0 fails when denominator is != 1 — <noreply@...>
Bugs item #10739, was opened at 2007-05-10 22:06
Hi,
[#11169] Allow back reference with nest level in Oniguruma for Ruby again — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <wonado@...>
Remark: I posted this text in comp.lang.ruby first, but Matz told me,
Does it make sense or is it required to write this as a RCR?
[#11176] FileUtils.rm_rf misfeature? — johan556@...
Hi!
[#11210] Pathname ascend and descend inclusive parameter — TRANS <transfire@...>
I would like to suggest that Pathname#ascend and Pathname#descend
[#11234] Planning to release 1.8.6 errata — Urabe Shyouhei <shyouhei@...>
Hi all.
On 25/05/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
[#11252] Init_stack and ruby_init_stack fail to reinit stack (threads problem?) — <noreply@...>
Bugs item #11134, was opened at 2007-05-25 12:14
Hi,
Nobuyoshi Nakada wrote:
[#11255] ruby_1_8_6 build problem (make install-doc) — johan556@...
Hi!
[#11271] providing better support through rubyforge tracker categories — Ryan Davis <ryand-ruby@...>
I'm going to make more categories for the trackers (bugs and patches)
[#11367] BUG: next in lambda: 1.8.6 differs from 1.8.4 and 1.9.0 — David Flanagan <david@...>
A toplevel next statement in a lambda does not return a value in 1.8.6,
[#11368] $2000 USD Reward for help fixing Segmentation Fault in GC — Brent Roman <brent@...>
Hi Brent,
[ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator
Bugs item #10527, was opened at 2007-05-02 14:42
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=10527&group_id=426
Category: Core
Group: 1.9.x
Status: Open
Resolution: None
Priority: 3
Submitted By: Paul Brannan (cout)
Assigned to: Nobody (None)
Summary: segfault printing instruction sequence for iterator
Initial Comment:
The following program segfaults:
i = VM::InstructionSequence.compile('for a in b; end')
p i.to_a
This appears to be the culprit:
| keyword_for for_var keyword_in
{COND_PUSH(1);}
expr_value do
{COND_POP();}
compstmt
keyword_end
{
/*%%%*/
ID id = internal_id();
ID *tbl = ALLOC_N(ID, 2);
NODE *args = NEW_ARGS(1 /* m */, 0 /* o */);
NODE *init;
NODE *scope = NEW_NODE(NODE_SCOPE, tbl, $8, args);
tbl[0] = 1; tbl[1] = id;
init = node_assign($2, NEW_DVAR(id));
args->nd_next = NEW_ARGS_AUX(0, 0);
args->nd_next->nd_next = NEW_ARGS_AUX(0, 0);
args->nd_next->nd_next->nd_next = init;
$$ = NEW_FOR(0, $5, scope);
fixpos($$, $2);
The internal id gets added to the node, then later passed on to the instruction sequence. When ruby tries to print out the internal id, it can't, because there is no associated string with an internal id.
This indicates to me two problems:
- I think this is a problem with the internal_id() function in general; internal IDs don't behave like other IDs
- the rb_id2name function can return 0 on failure or in the case that the given id is an internal id. There are a number of places in the code where the return value isn't being checked, which could potentially cause a crash.
I do not know YARV well enough to provide a patch.
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=10527&group_id=426