2007-07-02 NetBSD の ctype と proftpd
NetBSD で動いてる proftpd の鯖に日本語ファイル置くとなんかまともに動かねーなーと思ってよく調べたら
isspace() に char を渡してたからだった。
EUC なんで char が -1 未満にふっとんで ctype[] の判定配列のおとといの方向を参照していた。
これは大昔 NEWS-OS でもよく見つかったバグだなぁ。
当然 NetBSD の isspace() が悪い…のではなく、呼ぶ側が悪いので、呼んでる所を修正しようとしたが
たくさんあってめんどくさかったので gcc -funsigned-char でごまかしてみる。
予想に反してちゃんと動いたのでこれでいいや。
isspace() に char を渡してたからだった。
EUC なんで char が -1 未満にふっとんで ctype[] の判定配列のおとといの方向を参照していた。
これは大昔 NEWS-OS でもよく見つかったバグだなぁ。
当然 NetBSD の isspace() が悪い…のではなく、呼ぶ側が悪いので、呼んでる所を修正しようとしたが
たくさんあってめんどくさかったので gcc -funsigned-char でごまかしてみる。
予想に反してちゃんと動いたのでこれでいいや。
EOF