Browse code

Fix expending buffer in StdCopy

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)

Guillaume J. Charmes authored on 2014/04/01 02:49:48
Showing 1 changed files
... ...
@@ -108,12 +108,13 @@ func StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, err error)
108 108
 
109 109
 		// Retrieve the size of the frame
110 110
 		frameSize = int(binary.BigEndian.Uint32(buf[StdWriterSizeIndex : StdWriterSizeIndex+4]))
111
+		Debugf("framesize: %d", frameSize)
111 112
 
112 113
 		// Check if the buffer is big enough to read the frame.
113 114
 		// Extend it if necessary.
114 115
 		if frameSize+StdWriterPrefixLen > bufLen {
115
-			Debugf("Extending buffer cap.")
116
-			buf = append(buf, make([]byte, frameSize-len(buf)+1)...)
116
+			Debugf("Extending buffer cap by %d (was %d)", frameSize+StdWriterPrefixLen-bufLen+1, len(buf))
117
+			buf = append(buf, make([]byte, frameSize+StdWriterPrefixLen-bufLen+1)...)
117 118
 			bufLen = len(buf)
118 119
 		}
119 120