From: nobu.nakada@... Date: 2003-12-23T19:03:26+09:00 Subject: [ruby-dev:22338] Re: core dump with ungetc なかだです。 At Tue, 23 Dec 2003 18:15:46 +0900, Tanaka Akira wrote: > したがって、Ruby としては、そういう危ないのをユーザに指示されたからと > いって呼んでいいのか、というところが問題なわけです。 > > 私としては、Ruby では配列の境界を越えてアクセスすることが出来ないのと > 同様に、正しくない ungetc は出来るべきでないと思います。 単にseekするだけでは、その後でreadしたときにSEGVしてしまいまし た。やはり、読み込まれていないストリームに対しては、例外にする しかないかも知れません。 Index: io.c =================================================================== RCS file: /cvs/ruby/src/ruby/io.c,v retrieving revision 1.241 diff -u -2 -p -r1.241 io.c --- io.c 10 Dec 2003 08:26:31 -0000 1.241 +++ io.c 23 Dec 2003 09:55:26 -0000 @@ -1315,4 +1315,6 @@ rb_io_ungetc(io, c) GetOpenFile(io, fptr); + if (!(fptr->mode & FMODE_RBUF)) + rb_raise(rb_eIOError, "unread stream"); rb_io_check_readable(fptr); -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦