[ruby-core:109681] [Ruby master Bug#18767] IO.foreach hangs up when passes limit=0
From:
"matz (Yukihiro Matsumoto)" <noreply@...>
Date:
2022-08-25 09:53:02 UTC
List:
ruby-core #109681
Issue #18767 has been updated by matz (Yukihiro Matsumoto).
OK, let's make it raise exceptions for zero length.
Matz.
----------------------------------------
Bug #18767: IO.foreach hangs up when passes limit=0
https://bugs.ruby-lang.org/issues/18767#change-98905
* Author: andrykonchin (Andrew Konchin)
* Status: Open
* Priority: Normal
* ruby -v: 3.0.3
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
`IO.foreach` behaves in an unexpected way in a corner case when passes 0 as a limit parameter. It never stops and hangs up.
```ruby
IO.foreach('file.txt', 0) { |s| p s }
""
""
""
""
""
""
""
""
""
""
```
Expected behavior - to raise ArgumentError "invalid limit: 0" like it does the `IO.readlines` method.
I observe this behavior on 2.6, 2.7, and 3.0. Didn't check on 3.1 and master though.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>