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

Back to archive index

Etsushi Kato ekato****@ees*****
2004年 2月 12日 (木) 15:48:12 JST


On 2004/02/12, at 4:10 AM, TOKUNAGA Hiroyuki wrote:

> execlp(command, command, NULL)に変更しておきました。御指摘ありがとうござ
> います。

変更ありがとうございます。あと、

>  fst.st_uid != getuid()のチェックを外すのはセキュリティ的にあまりよろし
> くないような気がします。個人でわかってて外す分には構わないとは思うのですが。

についてですが、どうも Mac OS X の fstat(2) は socket に対して st_uid 
などが使えないというバグがあるようです。man page には、

STAT(2)                     BSD System Calls Manual                    
STAT(2)

NAME
      stat, lstat, fstat - get file status
<中略>
BUGS
      Applying fstat to a socket (and thus to a pipe) returns a zero'd 
buffer,
      except for the blocksize field, and a unique device and inode 
number.

STANDARDS
      The stat() and fstat() function calls are expected to conform to 
IEEE Std
      1003.1-1988 (``POSIX.1'').

HISTORY
      An lstat() function call appeared in 4.2BSD.

4th Berkeley Distribution       April 19, 1994       4th Berkeley 
Distribution

とあり、実際に、fst の中身を見たところ、fst.st_ino, fst.st_mode,fst.st_blksize 
のみ使える情報が存在していました… 困ったものです。ということで、descriptor に対してではなく、socket のパスそのものの 
st_uid を確認するほうが、ポータブルなのかもしれません。

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




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