[Anthy-dev 569] Re: uim-xim and uim-helper-server problem on Mac OS X

アーカイブの一覧に戻る

yusuk****@cheru***** yusuk****@cheru*****
2004年 2月 17日 (火) 23:52:34 JST


田畑です。

> プログラミングについてはまったくの素人なので、御指摘ありがたいです。
#NetBSDやOpenBSDのカーネルを読んで調べるような人を素人とは言いませんよ。^^;
#エンディアンのこと忘れてソース書く人のことを素人といいます。

> ただ使ってはいないのですが、NetBSD と OpenBSD も Mac OS X と同様に、
> socket の fd に対する fstat(2) の st_uid は 0 になってしまうように
> みえるので (試していません。まちがっていたら御指摘ください)、ここの変更は
> 必用かなと思って上のように書いたところです。
手元にあったNetBSDのソースを見ると確かにそうなってますね。
バグではなくて、manの記述はファイルについて書いてあって、
unix domainのソケットについては言ってないと解釈すべきなんでしょうか?

> > 「2004年ごろのMacOS X」対策ですとコメントを書いた上で、
> > if (fst.st_uid != getuid()) {
> >   if (何か敗者復活条件) {
> >   } else {
> >     close(fd);
> >     return -1;
> >   }
> > }
> > みたいに他のOSでのフローが変わらないようなコードが
> > できれば、取り込みたいと思います。
> > #owner以外は読めないはずなのにconnectできてるとか
> > #他のOSなら有り得ない状況?このチェックにraceはあり?
> 
> ぜひぜひおねがいします。
ちょっと考えて見たのですが、Linuxの場合にst_uidが0になってたら
rootに攻撃されているというどうしようもない状況なので、あまり
気にせずに接続することにしようと思います。

一応ダメ押しで、次のようなコードにするつもりです。
stat(st);
st.st_uidが自分でなければ失敗
connect();
fstat(st);
st.st_uidが自分でなくて、rootでもなければ切断
--


> あと、先程また uim-xim で気付いた点なのですが、endian の異なるホストの
> クライアント上では入力がおかしくなるようです。以下の用に変更したところ
> この点は解決できました (とりあえず動いた、というだけです。byte swap
> の部分はもっと上手く書いて頂けたらと思います)。
ありがとうございます。次のメールの分も含めてapplyしたいと思います。
--
 CHAOS AND CHANCE!
  Yusuke TABATA (yusuk****@cheru*****)



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る