code: func (br *bufReader) Read(p []byte) (n int, err error) {
  	if br.err != nil {
  		return 0, br.err
  	}
  	return br.buf.Read(p)
  }
docs: // Read calls br.buf.Read(p) and returns the results of it.
  // It does nothing, if br.err != nil.
  //
  // NOTE: if br.buf.Read(p) returns the error, it doesn't save it in
  // br.err and it's not returned from br.Err().