]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/pem: do not try to round trip value with leading/trailing space
authorRuss Cox <rsc@golang.org>
Fri, 31 Mar 2017 20:15:51 +0000 (16:15 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 3 Apr 2017 13:56:30 +0000 (13:56 +0000)
The header is literally

Key: Value

If the value or the key has leading or trailing spaces, those will
be lost by the round trip.

Found because testing/quick returns different values now.

Change-Id: I0f574bdbb5990689509c24309854d8f814b5efa0
Reviewed-on: https://go-review.googlesource.com/39211
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/encoding/pem/pem_test.go

index 6a85a604310c2a09cd4fba0442b22505385c90e0..7ab0e8f61d23707beedf2006549dd77c7c996cfc 100644 (file)
@@ -207,9 +207,10 @@ func TestLineBreaker(t *testing.T) {
 
 func TestFuzz(t *testing.T) {
        testRoundtrip := func(block Block) bool {
-               for key := range block.Headers {
-                       if strings.Contains(key, ":") {
-                               // Keys with colons cannot be encoded.
+               for key, val := range block.Headers {
+                       if strings.ContainsAny(key, ":\r\n") || strings.ContainsAny(val, "\r\n") || strings.TrimSpace(key) != key || strings.TrimSpace(val) != val {
+                               // Keys with colons or newlines cannot be encoded.
+                               // Keys/values with surrounding spaces might lose theirs.
                                return true
                        }
                }