• Christopher Wedgwood's avatar
    archive/tar: bug fixes. · fe0eb17f
    Christopher Wedgwood authored
    1. If all data is exhausted using Read then a following Next will
       fail as if it saw EOF.  (Test case added.)
    2. Seeking isn't always possible (i.e. sockets and pipes).  Fallback
       to read.  (Test case added.)
    3. Fix to readHeader (cleaner fix pointed out by rsc).
       (TestReader modified.)
    4. When Read has consumed all the data, don't try to read 0 bytes from reader.
       In cases where tr.nb is zero we attempt to read zero bytes and thus
       never see an EOF (this is most easily seen when the 'tar source' is
       something like bytes.Buffer{} as opposed to os.File).
    5. If write is used to the point of ErrWriteTooLong, allow additional file entries.
    6. Make close work as expected.  That is any further Write or
       WriteHeader attempts will result in ErrWriteAfterClose.
    Fixes #419.
    
    R=rsc, dsymonds1
    https://golang.org/cl/162062
    fe0eb17f
reader_test.go 5.35 KB