From: nobu@... Date: 2005-02-12T09:23:10+09:00 Subject: [ruby-dev:25676] Oniguruma segv なかだです。 http://www.rubyist.net/~akr/autobuild/ruby-trunk/log/20050212T012119.gz のOnigurumaの修正です。 key->encはOnigEncodingType*なのにsizeof(OnigEncodingType)拾って いるのが問題なのですが、変数名と型の結びつきは間違えやすいので、 直接変数名を使うようにしてみました。 * regparse.c (type_cclass_hash): fix overrun. Index: regparse.c =================================================================== RCS file: /cvs/ruby/src/ruby/regparse.c,v retrieving revision 1.13 diff -U2 -p -r1.13 regparse.c --- regparse.c 28 Jan 2005 15:21:48 -0000 1.13 +++ regparse.c 12 Feb 2005 00:13:04 -0000 @@ -4534,10 +4534,10 @@ static int type_cclass_hash(type_cclass_ p = (unsigned char* )&(key->enc); - for (i = 0; i < sizeof(OnigEncodingType); i++) { + for (i = 0; i < sizeof(key->enc); i++) { val = val * 997 + (int )*p++; } p = (unsigned char* )(&key->type); - for (i = 0; i < sizeof(int); i++) { + for (i = 0; i < sizeof(key->type); i++) { val = val * 997 + (int )*p++; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦