summaryrefslogtreecommitdiff
path: root/debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch
diff options
context:
space:
mode:
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.patch38
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
+ }