Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
| ... | ... |
@@ -23,6 +23,7 @@ type TarSum struct {
|
| 23 | 23 |
gz writeCloseFlusher |
| 24 | 24 |
bufTar *bytes.Buffer |
| 25 | 25 |
bufGz *bytes.Buffer |
| 26 |
+ bufData [8192]byte |
|
| 26 | 27 |
h hash.Hash |
| 27 | 28 |
sums map[string]string |
| 28 | 29 |
currentFile string |
| ... | ... |
@@ -92,7 +93,12 @@ func (ts *TarSum) Read(buf []byte) (int, error) {
|
| 92 | 92 |
if ts.finished {
|
| 93 | 93 |
return ts.bufGz.Read(buf) |
| 94 | 94 |
} |
| 95 |
- buf2 := make([]byte, len(buf), cap(buf)) |
|
| 95 |
+ var buf2 []byte |
|
| 96 |
+ if len(buf) > 8192 {
|
|
| 97 |
+ buf2 = make([]byte, len(buf), cap(buf)) |
|
| 98 |
+ } else {
|
|
| 99 |
+ buf2 = ts.bufData[:len(buf)-1] |
|
| 100 |
+ } |
|
| 96 | 101 |
|
| 97 | 102 |
n, err := ts.tarR.Read(buf2) |
| 98 | 103 |
if err != nil {
|