[#2840] Changing Resolv::DNS — Daniel Hobe <daniel@...>
I put out a RCR a while ago (176) that subclassed the Resolv::DNS class to
5 messages
2004/05/01
[#2853] cgi.rb: option to omit HTTP header emission — Jos Backus <jos@...>
I'm trying to use cgi.rb to write HTML-only output. This patch adds a
5 messages
2004/05/06
[#2867] ruby/dl — Jeff Mitchell <quixoticsycophant@...>
# dltest.rb
7 messages
2004/05/12
[#2878] Bug in open-uri under win32 (?) — Mauricio Fern疣dez <batsman.geo@...>
4 messages
2004/05/16
[#2894] RI for distribution — why the lucky stiff <ruby-core@...>
Hi, everyone.
6 messages
2004/05/18
[#2901] test/yaml/test_yaml.rb — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Hello.
2 messages
2004/05/19
[#2913] [yaml] YAML.load([1,2,3].to_yaml.to_yaml) — Jeff Mitchell <quixoticsycophant@...>
A bit contrived,
8 messages
2004/05/20
[#2926] Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml)
— "daz" <dooby@...10.karoo.co.uk>
2004/05/23
[#2927] Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml)
— ts <decoux@...>
2004/05/23
>>>>> "d" == daz <dooby@d10.karoo.co.uk> writes:
[#2928] Syck CVS (was Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml))
— why the lucky stiff <ruby-core@...>
2004/05/23
ts wrote:
[#2929] Re: Syck CVS (was Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml))
— ts <decoux@...>
2004/05/23
>>>>> "w" == why the lucky stiff <ruby-core@whytheluckystiff.net> writes:
[#2918] fixed SIG_SEGV in check_stack() in eval.c — b g <bg_rubyposter_123456@...>
I was getting a crash at 'JUMP_TAG(state);' in
6 messages
2004/05/22
[#2938] -Wstrict-prototypes for extensions — Jeff Mitchell <quixoticsycophant@...>
6 messages
2004/05/25
Re: Syck CVS (was Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml))
From:
ts <decoux@...>
Date:
2004-05-23 15:41:56 UTC
List:
ruby-core #2929
>>>>> "w" == why the lucky stiff <ruby-core@whytheluckystiff.net> writes:
w> Have you found the bug? I can't even reproduce it. I'm now setting up
w> Linux on a machine to test.
2298 { if ( YYTOKEN == YYLINEPTR )
2299 {
2300 if ( blockType == BLOCK_FOLD )
2301 {
2302 qidx -= 1;
2303 }
2304 QUOTECAT(qstr, qcapa, qidx, '\n');
2305 POP_LEVEL();
2306 YYCURSOR = YYTOKEN;
2307 RETURN_YAML_BLOCK();
2308 }
If blockType == BLOCK_FOLD and qidx == 0 (which is this special case) it
will make (in QUOTECAT)
qstr[-1] = '\n';
This can corrupt the memory pool (qstr is malloced) and this is why it
crash when free() is called
Now, syck can emit this
svg% ruby -ryaml -e 'puts "---\n...\n".to_yaml'
--- >
---
...
svg%
This is valid in YAML for a String object ?
Finally, for the other bug [ruby-talk:100706]
#14 0x0806a996 in rb_gc () at gc.c:1328
#15 0x08069861 in rb_newobj () at gc.c:386
#16 0x0806b8a2 in hash_alloc (klass=0) at hash.c:183
#17 0x0806b901 in rb_hash_new () at hash.c:195
#18 0x400b4921 in syck_parser_new (argc=0, argv=0x0, class=1074314424)
at rubyext.c:772
The GC is called when syck_parser_new() is not finished
in syck_new_parser(), root is not set to zero.
When the GC will find pobj on the stack, it will call syck_mark_parser()
which call rb_gc_mark(parser->root);
At this step, you can't predict what ruby will do :
* segfault,
* unknown object
* infinite loop
* ...
Guy Decoux