From: Joe Tsai Date: Thu, 17 Dec 2015 07:10:14 +0000 (-0800) Subject: archive/tar: document how Reader.Read handles header-only files X-Git-Tag: go1.6beta1~34 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7a2913c9f551588b351efc6d026c1c6f187442e1;p=gostls13.git archive/tar: document how Reader.Read handles header-only files Commit dd5e14a7511465d20c6e95bf54c9b8f999abbbf6 ensured that no data could be read for header-only files regardless of what the Header.Size said. We should document this fact in Reader.Read. Updates #13647 Change-Id: I4df9a2892bc66b49e0279693d08454bf696cfa31 Reviewed-on: https://go-review.googlesource.com/17913 Reviewed-by: Russ Cox --- diff --git a/src/archive/tar/reader.go b/src/archive/tar/reader.go index 4aa7edbce3..c8cb69a178 100644 --- a/src/archive/tar/reader.go +++ b/src/archive/tar/reader.go @@ -857,6 +857,10 @@ func (tr *Reader) numBytes() int64 { // Read reads from the current entry in the tar archive. // It returns 0, io.EOF when it reaches the end of that entry, // until Next is called to advance to the next entry. +// +// Calling Read on special types like TypeLink, TypeSymLink, TypeChar, +// TypeBlock, TypeDir, and TypeFifo returns 0, io.EOF regardless of what +// the Header.Size claims. func (tr *Reader) Read(b []byte) (n int, err error) { if tr.err != nil { return 0, tr.err