From: WATANABE Hirofumi Date: 1998-07-13T10:11:00+09:00 Subject: [ruby-dev:3269] Re: [BUG] format(nil, arg) わたなべです. Tadayoshi Funaba writes: :考えたら、pack/unpack、strftime でもありうることだと気がつきました (他 :にもあるかな)。ということで、またまた参考まで。 strftime はこのままだと正常な場合もエラーになってしまいます. Check_Type のほうが簡単かな. --- sprintf.c.orig Thu Jul 09 17:40:26 1998 +++ sprintf.c Sun Jul 12 16:47:00 1998 @@ -143,2 +143,3 @@ fmt = GETARG(); + Check_Type(fmt, T_STRING); p = str2cstr(fmt, &blen); --- time.c.orig Tue Jun 30 11:20:18 1998 +++ time.c Mon Jul 13 00:31:52 1998 @@ -742,6 +742,7 @@ int len; VALUE str; + Check_Type(format, T_STRING); GetTimeval(time, tobj); if (tobj->tm_got == 0) { time_localtime(time); --- pack.c.orig Fri Jun 26 18:44:28 1998 +++ pack.c Mon Jul 13 00:30:14 1998 @@ -103,7 +103,7 @@ char *ptr; int plen; - + Check_Type(fmt, T_STRING); p = str2cstr(fmt, &plen); pend = p + plen; res = str_new(0, 0); @@ -550,6 +550,7 @@ char type; int len; + Check_Type(fmt, T_STRING); s = str2cstr(str, &len); send = s + len; p = str2cstr(fmt, &len);