namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

invalid dbname on the CGI mode



高林です

昔の manual.html によると CGIとして呼び出されたときには

|   また、おかしな人が "../../../etc" などのように上位のディレクトリを指定
|   してきた場合を考えて、 dbname に渡される文字列に '/' が含まれる場合には
|   無効にするようにしました (実際にはどうせ NMZ.* しかプログラムは参照でき
|   ないわけですが)。

という制限があったはずなのですが、いつのまにかこのチェックはなくなっ
ていました (記憶にないんだけど)。

こんなルールで復活させることにしましたがいかがでしょう?

    * CGIから実行されたときの不正な dbname の判定を新しいルールで
      復活させた    
         + 先頭が / から始まっていない
         + パスに ../ を含まない

このルールならインデックスを階層化して置くことができます。

で、そんな修正を加えたものを
<URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/proto/> に
namazu-1.2.0.8-beta-6.tar.gz, namazu-1.3.0.0-beta-4.tar.gz として
置いておきました。

また、この版では Win32, OS/2上での日本語のファイル名の扱いが改善さ
れているはずなので

mithara <mithara@xxxxxxxxxxxxxxxx> wrote:

>9つのディレクトリ名、45のhtml、txtファイル名について英文字化して
>インデックスをとり検索してみたところ、タイトル、抄録、ファイル名共
>文字化けは発生しませんでした。ということは、問題は日本語ファイル名
>ということですか。

は解決していると思います。 \ を / に変換する部分は結局

    # Shift_JIS の漢字を考慮して \ を / に変換
    $url =~ s!([\x81-\x9f\xe0-\xef][\x40-\x7e\x80-\xfc]|[\x01-\x7f])!
	    $1 eq "\\" ? "/" : $1!gex;

こんなふうになりました。日本語のファイル名の問題が解決していれば 
v1.2.0.8 の方は正式版としてリリースしたいと思います。

# 広瀬さんあたり日本語ファイル名のテストをしてもらえません?
# "\hoge\ソソソ\噂噂.txt" のような名前をつけたりして。

それから、 v1.3.0.0-beta-4 の方は mknmz で $SYSTEM を $^O から取得
するようにしました。たぶん問題ないと思いますが、念のため確かめてく
ださると助かります。

-- Satoru Takabayashi