2007年1月のアーカイブ

race condition

1月 20, 2007

いわたさんにさらに教えて頂きました。ありがとうございます。

ところで、uim-helper.cのuim_helper_get_pathnameと prime.cのprime_get_ud_pathは、”/tmp”上に作るので、こちらは上記の問題があるのではないでしょうか。

確かに helper の socket パスは /tmp/uim-username/ とかのユーザのみ読み書きできるディレクトリを作った方がいいかもしれません。ただ現状でも uim では socket の credentials を使っているので、ユーザ以外が動かしているソケットには接続しないようになっています。

popen(というよりsh)のglobbing ruleを気にするくらいならば、昔ながらのfork, exec, pipeをすべきではないでしょうか。これだと、それぞれの段階でエラー処理を制御できるので、問題点を洗い出しやすいコードになるのではないかと思います。

一方、popenでは満足なエラー通知はできません(OpenBSD-man:popenのBUGS参照)。

なるほどエラー処理の問題ですね。そういえば以前 skk-look を使えるようにしたときuim-fep の山本さんにも uim_ipc_open_command() を使ったほうがいいと指摘されたような気がします。

uim-skk はもうかれこれ一年以上いじっていないのですが、おかしな点がありましたらどしどしパッチを送って頂けるとありがたいです。

uim-skk

1月 13, 2007

ヤマケンさんより指摘のあったIPv6サポート入れました。いわたさんありがとうございます。

IPv6使ったことないのでよくわかってませんけど…。いろいろなプラットフォームでのレポート頂けるとありがたいです。

余談ですが、いわたさんの気になっている個人辞書の race condition と popen(3) ですが、race condition は F_SETLKW で lock しているのでたぶん大丈夫かなと思います。popen の方は alphabet 以外の文字は渡らないようにしてありますがどうなんでしょう?