summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2022-05-26 10:37:01 -0700
committerJeremy Evans <code@jeremyevans.net>2022-08-25 13:36:17 -0700
commit21cac42385e1a116d287e155e461453b830640d2 (patch)
tree63d7677ff07a004e2150c733ea6369dd6d549dd6 /io.c
parent881bc2a1765e7c19ab389c53841adc5ac329f1aa (diff)
downloadruby-21cac42385e1a116d287e155e461453b830640d2.tar.gz
Raise ArgumentError for IO.foreach with limit of 0
Makes behavior consistent with IO.readlines. Fixes [Bug #18767]
Diffstat (limited to 'io.c')
-rw-r--r--io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/io.c b/io.c
index f2c64989df..1eb48dd19b 100644
--- a/io.c
+++ b/io.c
@@ -11518,6 +11518,8 @@ io_s_foreach(VALUE v)
struct getline_arg *arg = (void *)v;
VALUE str;
+ if (arg->limit == 0)
+ rb_raise(rb_eArgError, "invalid limit: 0 for foreach");
while (!NIL_P(str = rb_io_getline_1(arg->rs, arg->limit, arg->chomp, arg->io))) {
rb_lastline_set(str);
rb_yield(str);