[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00386] Re: I found a bug?



 元木です。

 どうもありがとうございます。

# 現在バッファ関連でやばめのやつ。
# WNN_HOSTLEN, FILENAME, FILE_NAME_L

In [freewnn : No.00385]
  Kazuo ISHIDA <ishidakz@hml.cl.nec.co.jp> wrote:

!>  で、真の問題はどの部分でバッファー以上のデータを読み込もう
!>  としたかなのですが調べてもらえますか?

| 今回おかしかったのは Wnn/jserver/do_env.c 内の js_open() です
| この関数中の

|   gets_cur (tmp_buf, WNN_HOSTLEN);

| でデータが読み込みきれなかったようです
| 実際、WNN_HOSTLEN は 16 に定義されていると思うのですが
| 読み込まれるホスト名は minerva.hml.cl.nec.co.jp で 24 (+1) 文字あります

 むう。WNN_HOSTLEN ですか.....  短いなぁとは思っていたのです
 がこれを変更すると辞書に埋め込まれる createhost の長さが変
 わるので辞書のフォーマットに互換性が無くなってしまいます。

 ソースをちょっと眺めた感じでは、libwnn(jlib) を使用している
 場合は libwnn(jlib)側で WNN_HOSTLEN 分しか取得していないの
 でこの問題は起こらないようです。

 tamago v4 だと多分チェックしていないので引っかかってしまう
 可能性があります。

# ちゃんとサーバ側でハンドリングしていればいいだけの話だった
# ので tamago は無罪です。

 というわけで tamago をお使いの皆様はいしださんのパッチを当
 てて使用した方が良いと思います。

 Message-ID: <20000510135958G.ishidakz@hml.cl.nec.co.jp>

| しかし不思議なのは同関数内の

|   error1 ("Inet user=%s@%s\n", c_c->user_name, c_c->host_name);

| をコメントアウトしたりすると正しくなったかのように
| 動作したりしたのです (実際には正しくなかったのですが)
| 最適化か、error1 中で行われる fflush() が影響していたのでしょうかね?

 ん???? ちょっと状況が見えないのですが
> error1 ("Inet user=%s@%s\n", c_c->user_name, c_c->host_name);
 があるとないとで挙動が変化したということでしょうか?

 あと、これはパッチ適用後でしょうか? それとも適用前でしょうか?

# 「正しくなったかのように」ってあるから適用後なのだろうか?

| 以上のような情報でお役にたてたでしょうか

 重ねてありがとうございます。

sin.