Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: namazu-2.0.10rc1
- From: Rei FURUKAWA <furukawa@xxxxxxxxxxxx>
- Date: Tue, 18 Dec 2001 23:18:17 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 02215
- References: <200112170628.PAA08300@ns1.eal.or.jp>
古川です。
From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
Subject: [namazu-devel-ja] namazu-2.0.10rc1
Date: Mon, 17 Dec 2001 15:28:05 JST
knok> Debian sid, potato, NetBSD-current での動作チェックを行いました。今
knok> 回の修正に対する test script も追加(namazu-cgi-9)したので、可能な方は
knok> 動作検証をしていただけませんでしょうか。
Win95 + cygwin 1.3.2 で、
FAIL: namazu-cgi-9
====================
1 of 42 tests failed
====================
でした。long HOME environment variable にて Signal 11 (SEGV)
になりました。
src/rcfile.c に
if ((home = getenv("HOME")) != NULL) {
strncpy(tmp, home, BUFSIZE);
strncat(tmp, "/", BUFSIZE - strlen(tmp));
や
char *home = getenv("HOME");
if (home != NULL) {
char fname[BUFSIZE];
strncpy(fname, home, BUFSIZE);
strncat(fname, "/.namazurc",
BUFSIZE - strlen(fname));
という部分がありますが、strncpy が BUFSIZE で切られた場合
には、終端文字が無いので、直後の strlen がさらに後ろを読も
うとしてしまうと思います。
手もとの環境では、後者の部分を
char *home = getenv("HOME");
if (home != NULL) {
char fname[BUFSIZE + 1];
fname[BUFSIZE] = 0;
strncpy(fname, home, BUFSIZE);
strncat(fname, "/.namazurc",
BUFSIZE - strlen(fname));
とするとテストを通るようになりました。
--
Rei FURUKAWA
furukawa@xxxxxxxxxxxx