Don't exit on eof in header reading in stdcopy
| ... | ... |
@@ -82,13 +82,14 @@ func StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, err error) |
| 82 | 82 |
for nr < StdWriterPrefixLen {
|
| 83 | 83 |
var nr2 int |
| 84 | 84 |
nr2, er = src.Read(buf[nr:]) |
| 85 |
- if er == io.EOF {
|
|
| 86 |
- return written, nil |
|
| 87 |
- } |
|
| 88 |
- if er != nil {
|
|
| 85 |
+ // Don't exit on EOF, because we can have some more input |
|
| 86 |
+ if er != nil && er != io.EOF {
|
|
| 89 | 87 |
return 0, er |
| 90 | 88 |
} |
| 91 | 89 |
nr += nr2 |
| 90 |
+ if nr == 0 {
|
|
| 91 |
+ return written, nil |
|
| 92 |
+ } |
|
| 92 | 93 |
} |
| 93 | 94 |
|
| 94 | 95 |
// Check the first byte to know where to write |