• Joe Tsai's avatar
    archive/tar: improve handling of directory paths · 4cd58c2f
    Joe Tsai authored
    The USTAR format says:
    <<<
    Implementors should be aware that the previous file format did not include
    a mechanism to archive directory type files.
    For this reason, the convention of using a filename ending with
    <slash> was adopted to specify a directory on the archive.
    >>>
    
    In light of this suggestion, make the following changes:
    * Writer.WriteHeader refuses to encode a header where a file that
    is obviously a file-type has a trailing slash in the name.
    * formatter.formatString avoids encoding a trailing slash in the event
    that the string is truncated (the full string will be encoded elsewhere,
    so stripping the slash is safe).
    * Reader.Next treats a TypeRegA (which is the zero value of Typeflag)
    as a TypeDir if the name has a trailing slash.
    
    Change-Id: Ibf27aa8234cce2032d92e5e5b28546c2f2ae5ef6
    Reviewed-on: https://go-review.googlesource.com/69293Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    4cd58c2f
reader_test.go 49.8 KB