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

Back to archive index

Etsushi Kato ekato****@ees*****
2004年 2月 29日 (日) 14:31:04 JST


On Sun, Feb 29, 2004 at 12:56:04AM +0900,
KIHARA Hideto <deton****@m1*****> wrote:

> Fri, Feb 27, 2004 at 08:22:32PM +0900 において
> Etsushi Kato さん曰く:
> > > NetBSD ではおそらく、setsockopt() に LOCAL_CREDS を使うようなコードが
> > > 必要みたいですが、試すことができないので ssh-agent と同様に fallback 
> ...
> > するセキュリティが保てますし、NetBSD でも少しの変更で問題ないと思いま
> > す (postresql の Unix ドメンインソケットの認証が参考にできると思います)。
> 
> NetBSDのLOCAL_CREDSを使うコードを追加してみました。
> PostgreSQLのものをほとんどそのまま持ってきただけですが。

すばらしいです。

> Sat, Feb 28, 2004 at 10:41:58AM +0900 において
> Etsushi Kato さん曰く:
> > なるほど、openldap にも getpeereid() が OS に無い場合のコードがありま
> > すね。NetBSD でもこれならいけそうです。ただ、このコードだと、Mac OS X

また読み間違えてました… openldap のコードでは NetBSD に対応してません
ね。LOCAL_PEERCRED というのは FreeBSD 用でした (ただ今の FreeBSD の 
libc には、そのままこれが getpeereid(3) としてありますから、意味ないで
すけど)。

> > 10.3 では -1 が戻ってしまい (SO_PEERCRED, LOCAL_PEERCRED,
> > msg_accrights のすべてがありません)、openssh のように geteuid() の 
> 
> msg_accrightsの代わりにmsg_controlがありませんか?
> 4.3BSDではmsg_accrightsで、
> 4.3BSD Renoからはmsg_controlに変更されたとのことなので[*]、
> msg_controlを使うようにすればいいのではないかと思います。

なるほど。勉強になります。確かに Mac OS X でも msg_control が struct
msghdr にありました。msg_accrights は struct omsghdr に含まれています。
openldap のDO_SENDMSG の場合のコードを msg_control に対応したように書
きかえたところ、手元でも uid が得られました。ちょうど、木原さんのダミー
リクエストのコードが役立ちました。
もう少しきれいに修正してからパッチを送りたいと思います。

-- 
Etsushi Kato
ekato****@ees*****



Anthy-dev メーリングリストの案内
Back to archive index