[Namazu-users-ja 1241] cgi.c "SERVER_SOFTWARE" による処理分岐について

masanobu hatanaka masanobu.hatanaka @ oracle.com
2013年 3月 6日 (水) 15:54:29 JST


はじめまして。
畠中と申します。

以下のような現象を確認したのですが、ソースの修正が必要と思われた
ので、情報共有を含めて修正の依頼をさせてください。


[環境]
OS:Solaris10(SPARC)
Web Server:Oracle iPlanet Web Server 7.0.16
Namazu:2.0.21

上記のWeb ServerでNamazu.cgiを実行したところ、以下のメッセージ
出力と伴にprocessがcrashしてしまったため該当のソースコード
(cgi.c)を確認しました。
-------------------
[05/Mar/2013:20:50:20] warning (20459): for host 10.185.178.94 trying
to GET /cgi-bin/namazu.cgi, /usr/local/var/namazu/namazu.cgi reports:
CORE4385: stderr: assert に失敗しました: 0 , (cgi.c ファイルの 249  行
目)
-------------------

--------------------
} else if (!(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "Microsoft-"))
     || !(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "AnWeb"))
     || !(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "iPlanet-"))) {
query_string = "";
script_name = getenv("SCRIPT_NAME");
if (script_name == NULL) {
     return NULL;
}
} else {
/* Must not be reached here. */
assert(0);
--------------------

「/* Must not be reached here. */」の箇所で終了していたので、
Web Serverの"SERVER_SOFTWARE"を確認したところ、
「Oracle-iPlanet-Web-Server/7.0」となっていました。

「Oracle iPlanet Web Server」にも対応するよう以下のような処
理を追加していただけないでしょうか。
--------------------
:
} else if (!(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "Microsoft-"))
     || !(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "AnWeb"))
     || !(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "Oracle-")))
     || !(nmz_strprefixcasecmp(getenv("SERVER_SOFTWARE"), "iPlanet-"))) {
:
--------------------

上記修正/compile後、動作確認はしております。

どうぞよろしくお願い致します。


Namazu-users-ja メーリングリストの案内