Ruby socket reads stop exposing uninitialized buffer bytes
engineeringrubysecuritysocketsmemoryCVE-2020-10933 comes from changing a reusable string buffer before a nonblocking read succeeds. The fix separates capacity from the visible string length.