From 10db8408f660956a312a7fd9a5b8d0f74175e8ab Mon Sep 17 00:00:00 2001 From: Joe Tsai Date: Wed, 16 Dec 2015 23:10:14 -0800 Subject: [PATCH] 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 --- archive/tar/reader.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/archive/tar/reader.go b/archive/tar/reader.go index 6e77cbe..a8b63a2 100644 --- a/archive/tar/reader.go +++ b/archive/tar/reader.go @@ -928,6 +928,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