From: tenderlove@... Date: 2021-02-27T00:45:22+00:00 Subject: [ruby-core:102634] [Ruby master Bug#17661] IO#each will segfault when if file is closed inside an `each_byte` block Issue #17661 has been reported by tenderlovemaking (Aaron Patterson). ---------------------------------------- Bug #17661: IO#each will segfault when if file is closed inside an `each_byte` block https://bugs.ruby-lang.org/issues/17661 * Author: tenderlovemaking (Aaron Patterson) * Status: Open * Priority: Normal * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- As reported here: https://twitter.com/asterite/status/1363487990203506689 when iterating through a file's contents with #each_byte, if the filehandle is closed inside of the block yielded to by #each byte, this condition is not detected, and a segmentation fault is thrown. Repro: ```ruby file = http://File.open(__FILE__) file.each_byte do |byte| p byte file.close end ``` Proposed fix is here: https://github.com/ruby/ruby/pull/4217 -- https://bugs.ruby-lang.org/ Unsubscribe: