-------_MULTIPART_6FD53959D38E3A2A77510639BA68A235_
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
Hello.
Kouhei Yanagita reported infinite loop bug on YAML.dump.
Please try attached file.
This bug occurs because 7th anchor tag never be generated. (if block never be executed)
Index: emitter.c
RCS file: /src/ruby/ext/syck/emitter.c,v
retrieving revision 1.11
diff -u -w -b -p -r1.11 emitter.c
--- emitter.c 6 May 2004 06:29:56 -0000 1.11
+++ emitter.c 8 May 2005 06:19:25 -0000
@@ -383,6 +383,8 @@ syck_emitter_start_obj( SyckEmitter *e,
*/
idx ->anchors->num_entries + 1;
+ printf("------> %d %d %d\n", idx, n->pos, e->bufpos);
+
/*
* Create the anchor tag
*/
if ( n->pos > ->bufpos )
{
------> 1 3 0
------> 2 680 0
------> 3 1357 0
------> 4 2034 0
------> 5 2511 0
------> 6 3188 0
------> 7 3865 4094
กส...กห
------> 7 3865 8148
กส...กห
e->bufpos keeps incresing in syck_emitter_flush (by e->bufpos + heck_room)
/////////////////////////////////////////////
I'm wondering if this code can be executed correctly when coresponding part of buffer is flushed.
/*
* Write the anchor into the buffer
*/
S_MEMMOVE( start + alen, start, char, e->marker - start );
S_MEMCPY( start + 1, anchor_name, char, strlen( anchor_name ) );
start[0] &';
start[alen - 1] ';
e->marker + len;
Nobody can predict which object needs anchor, so should "fixed size buffer & flush" be abondoned
and whole YAML document be held in memory?
Thank you.
-------_MULTIPART_6FD53959D38E3A2A77510639BA68A235_
Content-Type: application/octet-stream
Content-Disposition: attachment;
filename est.rb"
Content-Transfer-Encoding: base64
bW9kdWxlIFVwbG9hZGVyDQogIGNsYXNzIEl0ZW0NCiAgICBkZWYgaW5pdGlhbGl6ZShmbiwgZmls
ZXNpemUsIG51bWJlciwgbGFzdF9tb2RpZmllZCwgY29tbWVudCkNCiAgICAgIEBmaWxlbmFtZSA9
IGZuDQogICAgICBAZmlsZXNpemUgPSBmaWxlc2l6ZQ0KICAgICAgQG51bWJlciA9IG51bWJlcg0K
ICAgICAgQGxhc3RfbW9kaWZpZWQgPSBsYXN0X21vZGlmaWVkDQogICAgICBAY29tbWVudCA9IGNv
bW1lbnQNCiAgICBlbmQNCiAgICBhdHRyX3JlYWRlciA6ZmlsZW5hbWUsIDpsYXN0X21vZGlmaWVk
LCA6Y29tbWVudCwgOm51bWJlciwgOnBhcmVudCwgOmZpbGVzaXplDQogICAgYXR0cl93cml0ZXIg
OmZpbGVuYW1lLCA6bGFzdF9tb2RpZmllZCwgOmNvbW1lbnQsIDpwYXJlbnQNCiAgZW5kDQoNCiAg
Y2xhc3MgSXRlbUdyb3VwDQogICAgZGVmIGluaXRpYWxpemUobnVtYmVyLCB0aXRsZSkNCiAgICAg
IEBpdGVtcyA9IFtdDQogICAgICBAbnVtYmVyID0gbnVtYmVyDQogICAgICBAdGl0bGUgPSB0aXRs
ZQ0KICAgIGVuZA0KICAgIGF0dHJfcmVhZGVyIDppdGVtcywgOm51bWJlciwgOnRpdGxlDQogIGVu
ZA0KZW5kDQoNCg0KcyA9IERBVEEucmVhZChuaWwpDQpyZXF1aXJlICd5YW1sJw0KYSA9IFlBTUwu
bG9hZChzKQ0KWUFNTC5kdW1wKGEpDQoNCl9fRU5EX18NCi0tLSANCi0gJmlkMDAxICFydWJ5L29i
amVjdDpVcGxvYWRlcjo6SXRlbUdyb3VwIA0KICBpdGVtczogDQogICAgLSAhcnVieS9vYmplY3Q6
VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vo
b2dlXzAwMS0wMDEucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDog
MjAwNS0wNS0wNSAyMzo0ODozNi45MjU4NzQgKzA5OjAwDQogICAgICBudW1iZXI6IDENCiAgICAg
IHBhcmVudDogKmlkMDAxDQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAg
ICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMS0wMDIucG5nDQogICAg
ICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo0OTowNi4y
MTUzOTYgKzA5OjAwDQogICAgICBudW1iZXI6IDINCiAgICAgIHBhcmVudDogKmlkMDAxDQogICAg
LSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAg
ZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMS0wMDMucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAg
bGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo0OToxNC43NjY1MDYgKzA5OjAwDQogICAgICBu
dW1iZXI6IDMNCiAgICAgIHBhcmVudDogKmlkMDAxDQogIG51bWJlcjogMQ0KICB0aXRsZTogJycN
Ci0gJmlkMDAyICFydWJ5L29iamVjdDpVcGxvYWRlcjo6SXRlbUdyb3VwIA0KICBpdGVtczogDQog
ICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAg
ICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMi0wMDEucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAg
ICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo0OTozMy42NzMxNDYgKzA5OjAwDQogICAg
ICBudW1iZXI6IDENCiAgICAgIHBhcmVudDogKmlkMDAyDQogICAgLSAhcnVieS9vYmplY3Q6VXBs
b2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dl
XzAwMi0wMDIucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAw
NS0wNS0wNSAyMzo1MDozNC40MDYwMDkgKzA5OjAwDQogICAgICBudW1iZXI6IDINCiAgICAgIHBh
cmVudDogKmlkMDAyDQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBj
b21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMi0wMDMucG5nDQogICAgICBm
aWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MDo0Ny4wMTQ5
NzAgKzA5OjAwDQogICAgICBudW1iZXI6IDMNCiAgICAgIHBhcmVudDogKmlkMDAyDQogIG51bWJl
cjogMg0KICB0aXRsZTogJycNCi0gJmlkMDAzICFydWJ5L29iamVjdDpVcGxvYWRlcjo6SXRlbUdy
b3VwIA0KICBpdGVtczogDQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAg
ICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMy0wMDEucG5nDQogICAg
ICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MTowMi45
MDEwMjAgKzA5OjAwDQogICAgICBudW1iZXI6IDENCiAgICAgIHBhcmVudDogKmlkMDAzDQogICAg
LSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAg
ZmlsZW5hbWU6IGhvZ2Vob2dlXzAwMy0wMDIucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAg
bGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MToxNi4yMzE1NjMgKzA5OjAwDQogICAgICBu
dW1iZXI6IDINCiAgICAgIHBhcmVudDogKmlkMDAzDQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2Fk
ZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAw
My0wMDMucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0w
NS0wNSAyMzo1MToyNi4yMDUzNTUgKzA5OjAwDQogICAgICBudW1iZXI6IDMNCiAgICAgIHBhcmVu
dDogKmlkMDAzDQogIG51bWJlcjogMw0KICB0aXRsZTogJycNCi0gJmlkMDA0ICFydWJ5L29iamVj
dDpVcGxvYWRlcjo6SXRlbUdyb3VwIA0KICBpdGVtczogDQogICAgLSAhcnVieS9vYmplY3Q6VXBs
b2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dl
XzAwNC0wMDEucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAw
NS0wNS0wNSAyMzo1MTo0Ni4wNzA2NzkgKzA5OjAwDQogICAgICBudW1iZXI6IDENCiAgICAgIHBh
cmVudDogKmlkMDA0DQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBj
b21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwNC0wMDIucG5nDQogICAgICBm
aWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MTo1Ni4wMjQ3
MDMgKzA5OjAwDQogICAgICBudW1iZXI6IDINCiAgICAgIHBhcmVudDogKmlkMDA0DQogIG51bWJl
cjogNA0KICB0aXRsZTogJycNCi0gJmlkMDA1ICFydWJ5L29iamVjdDpVcGxvYWRlcjo6SXRlbUdy
b3VwIA0KICBpdGVtczogDQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAg
ICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwNS0wMDEucG5nDQogICAg
ICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MjoxNC4y
NDU0NzIgKzA5OjAwDQogICAgICBudW1iZXI6IDENCiAgICAgIHBhcmVudDogKmlkMDA1DQogICAg
LSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAg
ZmlsZW5hbWU6IGhvZ2Vob2dlXzAwNS0wMDIucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAg
bGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MjozMi4zNDk3NzUgKzA5OjAwDQogICAgICBu
dW1iZXI6IDINCiAgICAgIHBhcmVudDogKmlkMDA1DQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2Fk
ZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAw
NS0wMDMucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0w
NS0wNSAyMzo1Mjo0OC45OTkxNTMgKzA5OjAwDQogICAgICBudW1iZXI6IDMNCiAgICAgIHBhcmVu
dDogKmlkMDA1DQogIG51bWJlcjogNQ0KICB0aXRsZTogJycNCi0gJmlkMDA2ICFydWJ5L29iamVj
dDpVcGxvYWRlcjo6SXRlbUdyb3VwIA0KICBpdGVtczogDQogICAgLSAhcnVieS9vYmplY3Q6VXBs
b2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dl
XzAwNi0wMDEucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAw
NS0wNS0wNSAyMzo1MzowOS45NDQwOTIgKzA5OjAwDQogICAgICBudW1iZXI6IDENCiAgICAgIHBh
cmVudDogKmlkMDA2DQogICAgLSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBj
b21tZW50OiAnJw0KICAgICAgZmlsZW5hbWU6IGhvZ2Vob2dlXzAwNi0wMDIucG5nDQogICAgICBm
aWxlc2l6ZTogMA0KICAgICAgbGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MzoyMS4wNDgw
OTUgKzA5OjAwDQogICAgICBudW1iZXI6IDINCiAgICAgIHBhcmVudDogKmlkMDA2DQogICAgLSAh
cnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAgZmls
ZW5hbWU6IGhvZ2Vob2dlXzAwNi0wMDMucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAgbGFz
dF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MzozMS42MjI5NDYgKzA5OjAwDQogICAgICBudW1i
ZXI6IDMNCiAgICAgIHBhcmVudDogKmlkMDA2DQogIG51bWJlcjogNg0KICB0aXRsZTogJycNCi0g
JmlkMDA3ICFydWJ5L29iamVjdDpVcGxvYWRlcjo6SXRlbUdyb3VwIA0KICBpdGVtczogDQogICAg
LSAhcnVieS9vYmplY3Q6VXBsb2FkZXI6Okl0ZW0gDQogICAgICBjb21tZW50OiAnJw0KICAgICAg
ZmlsZW5hbWU6IGhvZ2Vob2dlXzAwNy0wMDEucG5nDQogICAgICBmaWxlc2l6ZTogMA0KICAgICAg
bGFzdF9tb2RpZmllZDogMjAwNS0wNS0wNSAyMzo1MzowOS45NDQwOTIgKzA5OjAwDQogICAgICBu
dW1iZXI6IDENCiAgICAgIHBhcmVudDogKmlkMDA3DQogIG51bWJlcjogNw0KICB0aXRsZTogJycN
Cg
-------_MULTIPART_6FD53959D38E3A2A77510639BA68A235_--