Hi,

In message "Re: [BUG] syck segfaults when used in rdoc"
    on 03/12/28, ts <decoux / moulon.inra.fr> writes:

| Well, it's easy to understand :
|  * it add 9362 (len) to marker
|  * in flush() it substract at most 4096 (bufsize) to marker
|
| then (buffer - marker) > bufsize and this give rest < 0

Oops, I did it again.  This patch should fix:

--- ext/syck/emitter.c	21 Dec 2003 15:38:01 -0000	1.9
+++ ext/syck/emitter.c	28 Dec 2003 16:26:15 -0000
@@ -234,3 +234,3 @@ syck_emitter_write( SyckEmitter *e, char
     at = e->marker - e->buffer;
-    if ( len + at >= e->bufsize )
+    while ( len + at >= e->bufsize )
     {