Namazu-devel-ja(旧)


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

Re: namazu-2.0.10rc1



古川です。

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