]> Cypherpunks repositories - gostls13.git/commit
archive/tar: reject bad key-value pairs for PAX records
authorJoe Tsai <joetsai@digital-static.net>
Mon, 14 Aug 2017 22:57:46 +0000 (15:57 -0700)
committerJoe Tsai <thebrokentoaster@gmail.com>
Tue, 15 Aug 2017 02:29:29 +0000 (02:29 +0000)
commit1da0e7e28ed3694d2a50b051ce556d06b90789ef
tree7693de6fcba3f9817381ebfd6a0f2d786a26f372
parent2bcc24e9770955eb15b98dba866898ceaae08d2a
archive/tar: reject bad key-value pairs for PAX records

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/55571
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/archive/tar/common.go
src/archive/tar/strconv.go
src/archive/tar/tar_test.go