Issue #8625 has been reported by no6v (Nobuhiro IMAI).

----------------------------------------
Bug #8625: IO#read(len, buf) shortens buf even if data is not read actually
https://bugs.ruby-lang.org/issues/8625

Author: no6v (Nobuhiro IMAI)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 
ruby -v: ruby 2.1.0dev (2013-07-11 trunk 41923) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


=begin
By r34580, IO#read(len, buf) does not expand buf until data is read actually,
but it still shortens if the original buf size is greater than len.
Is this an intended behavior?

 def m(s)
   IO.pipe do |r, w|
     t = Thread.new{r.read(2, s)}
     Thread.pass until t.stop?
     t.kill
     t.value
   end
 end
 
 (1..3).each do |len|
   s = "x" * len
   s # => "x", "xx", "xxx"
   m(s)
   s # => "x", "xx", "xx"
 end
=end



-- 
http://bugs.ruby-lang.org/