cannaserverのlib/RK/ncache.cに、以下のコードがある。
#define hash(x) ((int)((x)%NCHASH))
xはどこかのバッファのアドレスで、このアドレスを元にhashのインデックスを作成しているようだ。
このアドレスが0x80000000以上になるとhash(x)が負になってしまい、誤動作してしまう。
このバグを直すには、
#define hash(x) ((int)(((unsigned long)(x))%NCHASH))
とcastしてやれば良い。
08/09/12追記:
他に困っている人いないのかな?と思って検索してみた。
- Orz日記でも取りあげられていた。
- cvs版では、06/03/30に修正済みだった。(未リリース)
0 件のコメント:
コメントを投稿