From ee388f6ee2790908dffbb4b20d7d1d43b8ddb38a Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 4 Nov 2010 15:39:07 +0000 Subject: * io.c (rb_io_readlines, rb_io_each_line): limit must not be zero. a patch from Tomoyuki Chikanaga at [ruby-dev:42538]. #4024 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'io.c') diff --git a/io.c b/io.c index 4b8d34ab29..8fa6613a40 100644 --- a/io.c +++ b/io.c @@ -2724,6 +2724,8 @@ rb_io_readlines(int argc, VALUE *argv, VALUE io) long limit; prepare_getline_args(argc, argv, &rs, &limit, io); + if (limit == 0) + rb_raise(rb_eArgError, "invalid limit: 0 for readlines"); ary = rb_ary_new(); while (!NIL_P(line = rb_io_getline_1(rs, limit, io))) { rb_ary_push(ary, line); @@ -2773,6 +2775,8 @@ rb_io_each_line(int argc, VALUE *argv, VALUE io) RETURN_ENUMERATOR(io, argc, argv); prepare_getline_args(argc, argv, &rs, &limit, io); + if (limit == 0) + rb_raise(rb_eArgError, "invalid limit: 0 for each_line"); while (!NIL_P(str = rb_io_getline_1(rs, limit, io))) { rb_yield(str); } -- cgit v1.2.3