insecure tempfile problem

Tatsuya Kinoshita tats @ vega.ocn.ne.jp
2003年 5月 8日 (木) 20:59:06 JST


On May 8, 2003, [Wanderlust:11856],
Shuhei KOBAYASHI <shuhei @ aqua.ocn.ne.jp> wrote:

> call-process-region は region を temp file に書き出し, それを process に
> 渡すという実装になっています. その temp file の作成方法に問題があったと
> いうことです. これ以上は emacs/src/callproc.c 内の定義を比較してください.
> ;; 「mktemp() は使うな, mkstemp() を使え」とか「mktemp() を使わなければ
> ;; いけないならせめて O_EXCL を付けて open() しろ」といった有名な話です.

> TMPDIR を参照する temp-file-name-pattern が導入されたのが 20.1 でした.

なるほど。手元のソースを見てみると、Emacs 21.3ではmkstempを(あれ
ば)使っており、Emacs 20.7ではTMPDIRは見ているもののmkstempを使わ
ないまま(mktempを使って)Fwrite_regionしています。

> file mode も設定しているようには見えないけど大丈夫だろうか?

とりあえず、GNU C Library 2.0.7以降では、mkstempが0600にしてくれ
るようです。

-- 
木下達也




More information about the Emacs-mime-ja mailing list