わたなべです.

というわけで ruby-dev へ.

Yukihiro Matsumoto <matz / netlab.co.jp> writes:

:|いやあ, この PATH の長さはまじでびっくりしましたというか一本
:|取られました. おかげさまで原因もわかりました.
:
:そうなんですか.パッチが出る?

v1_2_5 は co してなかったので, tarball からのパッチです.

print ['Just another Perl hacker,'].fill('Just another Ruby hacker,')
-- 
わたなべひろふみ

--- ruby.c.orig Thu Apr 08 19:14:34 1999 +++ ruby.c Tue May 18 11:35:47 1999 @@ -110,3 +110,3 @@ char rubylib[FILENAME_MAX]; - conv_to_posix_path(path, rubylib); + conv_to_posix_path(path, rubylib, FILENAME_MAX); path = rubylib; --- dln.c.orig Thu Apr 08 19:14:30 1999 +++ dln.c Tue May 18 11:35:59 1999 @@ -1530,5 +1530,6 @@ char * -conv_to_posix_path(win32, posix) +conv_to_posix_path(win32, posix, len) char *win32; char *posix; + int len; { @@ -1547,3 +1548,6 @@ } - cygwin32_conv_to_posix_path(first, posix); + if (len < strlen(first)) + fprintf(stderr, "PATH length too long: %s\n", first); + else + strcpy(posix, first); return dst; @@ -1566,4 +1570,6 @@ #if defined(__CYGWIN32__) - char rubypath[MAXPATHLEN]; - conv_to_posix_path(path, rubypath); + int pathlen = 2 * strlen(path); + int rubypathlen = pathlen > MAXPATHLEN ? pathlen : MAXPATHLEN; + char *rubypath = alloca(rubypathlen); + conv_to_posix_path(path, rubypath, rubypathlen); path = rubypath;