Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooo.plを修正しました
臼田です
HEADとSTABLEのpl/util.plの仕様の違いの理由を探して
過去のメールを読んでいたところ
「Do NOT use system() (Re: namazu/filter committed by baba)」
http://www.namazu.org/ml/namazu-devel-ja/msg02586.html
から始まる一連の話題を見かけました。
気になったのでチェック用にtestスクリプトを作ってみました。
シェルプログラムは初めてなので動作に自信がなかったのですが、
自作のooo.plがひっかかりました。(ある意味予想通りなのですが)
他のフィルタと同じようにutil::systemcmd()を用いるスタイルに
修正しcommitしました。
ooo.plは2.0.xの他のモジュールで使っているスタイルのものも作って
stableにも近いうちにcommitしようと思っています。
------------------------------------------------------------
#! /bin/sh
#
# Test for avoid dangerous filename.
# (filename include shell command)
#
LOG=`pwd`/test-log
TARGET=`$srcdir/select-data`
echo ' *** starting ' $0 >>$LOG
if test ! -d idx21; then
mkdir idx21
else
rm -f idx21/NMZ.*
fi
TMPDATA=`pwd`/tmp-data
# Copy docments.
if test ! -d tmp-data; then
mkdir tmp-data
else
rm -rf tmp-data
mkdir tmp-data
fi
cp -rp $TARGET tmp-data
if test -f unauthorizedfile; then
rm unauthorizedfile
fi
_CWD=`pwd`
cd $TMPDATA
TARGETFILES=`ls`
for TARGETFILE in $TARGETFILES; do
mv $TARGETFILE '`touch unauthorizedfile`'$TARGETFILE
done;
cd $_CWD
# indexing dangerous named documents.
../scripts/mknmz -O idx21 $TMPDATA >> $LOG
test "$?" != "0" && exit 1 # error if not success
# Compare indexed docnum with hitnum
docnum=`perl -lne 'print $1 if /^files (\d+)/' idx21/NMZ.status`
hitnum=`../src/namazu -c namazu ./idx21`
echo "docnum:" $docnum, "hitnum:" $hitnum >> $LOG
test $docnum -gt $hitnum && exit 1 # error if docnum > hitnum
test -f unauthorizedfile && exit 1 # error if executed shell command.
exit 0
---------
臼田幸生