diff options
Diffstat (limited to 'debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch')
-rw-r--r-- | debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch b/debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch new file mode 100644 index 000000000..01da10797 --- /dev/null +++ b/debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch @@ -0,0 +1,38 @@ +Description: archive/tar: reuse temporary buffer in readHeader +Author: Cristian Staretu <unclejacksons@gmail.com> +Last-Update: 2014-07-03 +Forwarded: not-needed +Origin: vendor, https://code.google.com/p/go/source/detail?r=17404efd6b02d4b3acd17070e3f89de97a145877 + +--- + +diff -r 837348e418f3 -r 17404efd6b02 src/pkg/archive/tar/reader.go +--- a/src/pkg/archive/tar/reader.go Thu Jul 03 09:40:53 2014 +1000 ++++ b/src/pkg/archive/tar/reader.go Thu Jul 03 09:41:19 2014 +1000 +@@ -29,10 +29,11 @@ + // The Next method advances to the next file in the archive (including the first), + // and then it can be treated as an io.Reader to access the file's data. + type Reader struct { +- r io.Reader +- err error +- pad int64 // amount of padding (ignored) after current file entry +- curr numBytesReader // reader for current file entry ++ r io.Reader ++ err error ++ pad int64 // amount of padding (ignored) after current file entry ++ curr numBytesReader // reader for current file entry ++ hdrBuff [blockSize]byte // buffer to use in readHeader + } + + // A numBytesReader is an io.Reader with a numBytes method, returning the number +@@ -426,7 +427,9 @@ + } + + func (tr *Reader) readHeader() *Header { +- header := make([]byte, blockSize) ++ header := tr.hdrBuff[:] ++ copy(header, zeroBlock) ++ + if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil { + return nil + } |