diff options
| author | Xuyang Kang <xuyangkang@gmail.com> | 2016-07-17 00:23:56 -0700 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2016-10-12 03:56:18 +0000 |
| commit | 87b1aaa37cefec8deacdf9c3c30d26015bdfb00b (patch) | |
| tree | 3a6fdc359ae9ddc215e72dce66db75042b176eb6 /src/encoding/base64/base64_test.go | |
| parent | 56b5546b9138f80bb0b20aebcc1fa551096e87df (diff) | |
| download | go-87b1aaa37cefec8deacdf9c3c30d26015bdfb00b.tar.xz | |
encoding/base64: This change modifies Go to take strict option when decoding base64
If strict option is enabled, when decoding, instead of skip the padding
bits, it will do strict check to enforce they are set to zero.
Fixes #15656
Change-Id: I869fb725a39cc9dde44dbc4ff0046446e7abc642
Reviewed-on: https://go-review.googlesource.com/24964
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/encoding/base64/base64_test.go')
| -rw-r--r-- | src/encoding/base64/base64_test.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/encoding/base64/base64_test.go b/src/encoding/base64/base64_test.go index 19ddb92f64..e2e1d59f3c 100644 --- a/src/encoding/base64/base64_test.go +++ b/src/encoding/base64/base64_test.go @@ -85,6 +85,11 @@ var encodingTests = []encodingTest{ {RawStdEncoding, rawRef}, {RawURLEncoding, rawUrlRef}, {funnyEncoding, funnyRef}, + {StdEncoding.Strict(), stdRef}, + {URLEncoding.Strict(), urlRef}, + {RawStdEncoding.Strict(), rawRef}, + {RawURLEncoding.Strict(), rawUrlRef}, + {funnyEncoding.Strict(), funnyRef}, } var bigtest = testpair{ @@ -436,6 +441,22 @@ func TestDecoderIssue7733(t *testing.T) { } } +func TestDecoderIssue15656(t *testing.T) { + _, err := StdEncoding.Strict().DecodeString("WvLTlMrX9NpYDQlEIFlnDB==") + want := CorruptInputError(22) + if !reflect.DeepEqual(want, err) { + t.Errorf("Error = %v; want CorruptInputError(22)", err) + } + _, err = StdEncoding.Strict().DecodeString("WvLTlMrX9NpYDQlEIFlnDA==") + if err != nil { + t.Errorf("Error = %v; want nil", err) + } + _, err = StdEncoding.DecodeString("WvLTlMrX9NpYDQlEIFlnDB==") + if err != nil { + t.Errorf("Error = %v; want nil", err) + } +} + func BenchmarkEncodeToString(b *testing.B) { data := make([]byte, 8192) b.SetBytes(int64(len(data))) |
