• Joe Tsai's avatar
    archive/tar: make Reader error handling consistent · cd0ba4c1
    Joe Tsai authored
    The tar.Reader guarantees stickiness of errors. Ensuring this property means
    that the methods of Reader need to be consistent about whose responsibility it
    is to actually ensure that errors are sticky.
    
    In this CL, we make it only the responsibility of the exported methods
    (Next and Read) to store tr.err. All other methods just return the error as is.
    
    As part of this change, we also check the error value of mergePAX (and test
    that it properly detects invalid PAX files). Since the value of mergePAX was
    never used before, we change it such that it always returns ErrHeader instead
    of strconv.SyntaxError. This keeps it consistent with other usages of strconv
    in the same tar package.
    
    Change-Id: Ia1c31da71f1de4c175da89a385dec665d3edd167
    Reviewed-on: https://go-review.googlesource.com/28215
    Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    cd0ba4c1