[Momonga-devel.ja:02801] [momongaja:00076] bzdiff が動かない
- From: bugs-admin@xxxxxxxxxxxxxxxxx
- Date: Tue, 28 Sep 2004 03:53:58 +0900
koma2@xxxxxxxxxxxxxxxxx wrote:
> > bzdiffを実行すると、以下のようなエラーを吐きます。
> >
> > >-bash-2.05b$ bzdiff a b
> > >/usr/bin/bzdiff: line 1: tempfile: command not found
> > >cannot create a temporary file
> >
> > 下記URLのパッチで修正できました。
> > http://sources.redhat.com/ml/cygwin-apps/2004-08/msg00233.html
> >
> > specのパッチを作ってみました。添付します。
>
> bzdiffができないことを確認して,
> patchを当ててtrunkにcommitしました.
echo /tmp/bz$$ として一時ファイルを作るのはマズイです。
この場合、
(1) /tmp/bz<数字の並び> という名前の symbolic link を大量に作り、
書き込み権限のないファイル(eg. /etc/shadow) を差すようにする。
(2) root が bzdiff を実行するのを待つ。
(3) root が bzip2 -cdfq "$2" > $tmp を実行したところで
symbolic link 先のファイルが $2 に置き換えられ、
破壊される。
という形で、書き込み権限のないファイルを破壊させることができます。
あらかじめファイルが存在するかとか、
ファイルの permission を適切に設定するとかすればいいのですが、
そういった処理は mktemp が全部面倒見てくれるので
mktemp を使うべきです。
そういうわけで、以下のように patch を直して
trunk に commit しました。
--- bzdiff-orig 2003-08-09 02:35:45.000000000 -0400
+++ bzdiff 2004-08-26 15:24:33.263466500 -0400
@@ -37,7 +37,7 @@ if test -z "$FILES"; then
echo "Usage: $prog [${comp}_options] file [file]"
exit 1
fi
-tmp=`tempfile -d /tmp -p bz` || {
+tmp=`mktemp /tmp/bzXXXXXXXXXX` || {
echo 'cannot create a temporary file' >&2
exit 1
}
== このレポートの詳細は以下の通りです ==
レポート ID : 76
レポート URL : http://developer.momonga-linux.org/kagemai/guest.cgi?project=momongaja&action=view_report&id=76
状態 : 確認待ち
処理方法 : 修正済み
バージョン : HEAD
優先度 : 中
重要度 : 普通
担当者 : tab
# あなたが、このようなメッセージに無関係である場合には、
# 管理者 <bugs-admin@xxxxxxxxxxxxxxxxx> までご連絡ください。
--
Bug Tracking System 影舞 0.8.3.
http://www.daifukuya.com/kagemai/