• Joe Tsai's avatar
    archive/tar: reject bad key-value pairs for PAX records · 1da0e7e2
    Joe Tsai authored
    We forbid empty keys or keys with '=' because it leads to ambiguous parsing.
    Relevent PAX specification:
    <<<
    A keyword shall not include an <equals-sign>.
    >
    > Also, we forbid the writer from encoding records with an empty value.
    > While, this is a valid record syntactically, the semantics of an empty
    > value is that previous records with that key should be deleted.
    > Since we have no support (and probably never will) for global PAX records,
    > deletion is a non-sensible operation.
    > <<<
    > If the <value> field is zero length,
    > it shall delete any header block field,
    > previously entered extended header value,
    > or global extended header value of the same name.
    
    Fixes #20698
    Fixes #15567
    
    Change-Id: Ia29c5c6ef2e36cd9e6d7f6cff10e92b96a62f0d1
    Reviewed-on: https://go-review.googlesource.com/55571Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    1da0e7e2
tar_test.go 11.8 KB