とりあえず、すこしづつみていっています。

At Wed, 30 Jan 2013 15:02:27 +0900,
Susumu Tanimura wrote:
> 具体的に指摘を受けたのは、libdict.cのcellalloc、libkakasi.cの
> output_yomi_eachkanji、libbg2.cのg2aとg2jですが、他にもwarningが出ます。

  g2.c/libg2.c は明らかにバグです。ここのコードはDEC罫線と呼ばれるもの
をASCII文字等におきかえる処理なのですが、0x60-0x7fの間にある値をテーブ
ル内の値に置き換えるために、配列の要素として0x60引いた分を与える必要が
ありました。元のコードだとテーブルが0-0x1fまでの範囲しかないのに、
0x60-0x7fの範囲の値を使おうとするので配列の領域を越えたアクセスが発生し
ます。

  これは10年以上前のオリジナルのコードからあったバグのようなのですが、
これまで誰も指摘しなかったということは、DEC罫線自体を使うような人がいな
かったのでしょうね...

  ともかく、これに関しては修正してコミットしました。ただ、手元にDEC罫線
を含むデータを用意できていないので、動作検証はできていません。DEC罫線に
詳しい人のお話を伺いたい所です。

_______________________________________________
Kakasi-dev mailing list
[email protected]
http://www.namazu.org/cgi-bin/mailman/listinfo/kakasi-dev

メールによる返信