diff --git a/archive/tar/reader.go b/archive/tar/reader.go index 1f57508..7d05d7d 100644 --- a/archive/tar/reader.go +++ b/archive/tar/reader.go @@ -871,9 +871,13 @@ func (tr *Reader) numBytes() int64 { // It returns 0, io.EOF when it reaches the end of that entry, // until Next is called to advance to the next entry. func (tr *Reader) Read(b []byte) (n int, err error) { + if tr.err != nil { + return 0, tr.err + } if tr.curr == nil { return 0, io.EOF } + n, err = tr.curr.Read(b) if err != nil && err != io.EOF { tr.err = err