From: Koji Arai Date: 2000-03-24T06:35:20+09:00 Subject: [ruby-dev:9476] Re: [BUG] test ?f, *[] 新井です。 >>> From: Koji Arai >>> Date: 24 Mar 2000 06:09:33 +0900 >>> Subject: [ruby-dev:9475] [BUG] test ?f, *[] > 新井です。 > > ruby-1.4.4(1.5も)ですが、以下でSEGVします。 > ・ダイナミックローカル変数を使う > ・NODE_ARGSCAT で、空配列を渡す > > のが味噌のようです。 嘘でした。たまたま上の条件でSEGVするというだけで、 SEGVしないときもエラーメッセージが変です。 $ ruby -e 'test ?f' -e:1:in `test': wrong argument type Object (expected String) (TypeError) from -e:1 ^^^^^^ で、単純に引数の数チェックが甘かっただけのようです。 Index: file.c =================================================================== RCS file: /home/cvs/ruby/file.c,v retrieving revision 1.17 diff -u -p -u -r1.17 file.c --- file.c 2000/03/17 08:58:11 1.17 +++ file.c 2000/03/23 21:31:18 @@ -1504,7 +1504,8 @@ test_check(n, argc, argv) int i; n+=1; - if (n < argc) rb_raise(rb_eArgError, "wrong # of arguments(%d for %d)", argc, n); + if (argc < 2 || n < argc) + rb_raise(rb_eArgError, "wrong # of arguments(%d for %d)", argc, n); for (i=1; i