Namazu-devel-ja(旧)


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

DOCUMENT_NAME lookup bug



竹迫です。

From: "Yoshinori TAKESAKO" <yoshinori-takesako@xxxxxxxxx>
Subject: [namazu-devel-ja] Re: 検索結果が英語にならない+ページ送りがおかしい
> > (2) 検索結果が多い場合、画面下部にページ送りに表示が出ますが、それの
> > ジャンプ先がおかしいのです。
> > 
> > 現在のリスト: 1 - 20
> > ペイジ: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
> > 
> > この[1]から[11]までの部分のジャンプ先が、本来ならば
> > http://hogehoge/cgi-bin/namazu.cgi.exe?.......となるべきですが、
> > http://hogehoge/cgi-bin/e:/lotus/domino/data/domino/cgi-bin/namazu.cgi.exe?.....
> > 
> > なるのです。
> 
> 申し訳ありません。この現象は、
> 
> * Patch to add DOCUMENT_NAME lookup
>   http://www.namazu.org/ml/namazu-users-en/msg00117.html
>   http://www.namazu.org/ml/namazu-users-en/msg00116.html
> 
> のパッチを取り込んだのが原因で、Namazu 2.0.6 のバグだと思われます。
> 
> こちらで確認した結果、
> Lotus Go Webserver 4.6.1 や Lotus Domino Server R5.0 の Web サーバでは、
> 環境変数 DOCUMENT_NAME に、ローカルファイルの絶対パスが入ってしまうようです。

この件についてですが、いろいろな Web サーバの実装を参考にしたところ、
環境変数 DOCUMENT_NAME ではなく、環境変数 DOCUMENT_URI を参照するのが
一番安全のようです。

* Apache 1.3.20 (Unix)       CGI / SSI
* Apache 1.3.20 (Win32)      CGI / SSI
* IIS4.0 (WindowsNT4.0SP6a)  CGI / SSI
* Lotus Domino Server R5.0   CGI 
* AnHTTPd 1.34d              CGI / SSI

の環境で、それぞれ動作確認をしましたが、
特に問題はありませんでした。

そのとき試した簡単なパッチを以下に記載いたします。

--------------------------------------------------------------------
diff -urN src.orig/form.c src/form.c
--- src.orig/form.c     Sun Sep  2 16:13:38 2001
+++ src/form.c  Wed Sep 12 11:15:23 2001
@@ -362,7 +362,7 @@
     }

     script_name= getenv("SCRIPT_NAME");
-    document_name= getenv("DOCUMENT_NAME");
+    document_name= getenv("DOCUMENT_URI");

     /* Can't determine script_name */
     if (script_name == NULL) {
diff -urN src.orig/output.c src/output.c
--- src.orig/output.c   Sun Sep  2 16:13:38 2001
+++ src/output.c        Wed Sep 12 11:16:33 2001
@@ -487,11 +487,11 @@
     int i, max, whence;
     char *qs; /* QUERY_STRING */
     char *sn; /* SCRIPT_NAME  */
-    char *dn; /* DOCUMENT_NAME  */
+    char *dn; /* DOCUMENT_URI  */

     qs = nmz_getenv("QUERY_STRING");
     sn = nmz_getenv("SCRIPT_NAME");
-    dn = nmz_getenv("DOCUMENT_NAME");
+    dn = nmz_getenv("DOCUMENT_URI");

     if(dn == NULL || *dn == '\0')
         dn=sn;
--------------------------------------------------------------------

この修正は Namazu 2.0.7 のリリースまでに含めた方がよろしいでしょうか?
よろしければ、ご意見をいただけると有難いです。

以上、よろしくお願いいたします。

--
  広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
     竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>